Skip to content

Commit 7425631

Browse files
committed
feat: Add functions for finding the largest and smallest elements in an array
- Added code snippets to find the largest and smallest elements in an array using both built-in functions and without using any built-in functions. - Also included code snippets for reversing an array, finding the missing number in an array, moving zeroes to the end of an array, finding the "Kth" largest and smallest elements in an array, finding a subarray with a given sum, finding the maximum sum subarray, finding pairs that sum to a target value, merging two sorted arrays, finding the longest increasing subsequence, and solving the trapping rainwater problem.
1 parent 941aed4 commit 7425631

File tree

2 files changed

+349
-1
lines changed

2 files changed

+349
-1
lines changed

README.md

+348
Original file line numberDiff line numberDiff line change
@@ -9743,6 +9743,354 @@ console.log("The number of words in the string is: " + words.length);
97439743
// Output: The number of words in the string is: 2
97449744
```
97459745
9746+
Find the largest element in an array.
9747+
9748+
```javascript
9749+
const numbers = [10, 5, 20, 15, 30];
9750+
9751+
const largest = Math.max(...numbers);
9752+
9753+
console.log("Largest number: " + largest);
9754+
9755+
// Output: Largest number: 30
9756+
```
9757+
9758+
Find the smallest element in an array.
9759+
9760+
```javascript
9761+
const numbers = [10, 5, 20, 15, 30];
9762+
9763+
const smallest = Math.min(...numbers);
9764+
9765+
console.log("Smallest number: " + smallest);
9766+
9767+
// Output: Smallest number: 5
9768+
```
9769+
9770+
Find the largest element in an array without using any built-in functions/methods.
9771+
9772+
```javascript
9773+
const numbers = [10, 5, 20, 15, 30];
9774+
9775+
let largest = numbers[0];
9776+
9777+
for (let i = 1; i < numbers.length; i++) {
9778+
if (numbers[i] > largest) {
9779+
largest = numbers[i];
9780+
}
9781+
}
9782+
9783+
console.log("Largest number: " + largest);
9784+
9785+
// Output: Largest number: 30
9786+
```
9787+
9788+
Find the smallest element in an array without using any built-in functions/methods.
9789+
9790+
```javascript
9791+
const numbers = [10, 5, 20, 15, 30];
9792+
9793+
let smallest = numbers[0];
9794+
9795+
for (let i = 1; i < numbers.length; i++) {
9796+
if (numbers[i] < smallest) {
9797+
smallest = numbers[i];
9798+
}
9799+
}
9800+
9801+
console.log("Smallest number: " + smallest);
9802+
9803+
// Output: Smallest number: 5
9804+
```
9805+
9806+
Reverse an array without using any built-in functions/methods.
9807+
9808+
```javascript
9809+
const numbers = [1, 2, 3, 4, 5];
9810+
9811+
for (let i = 0; i < (numbers.length - 1) / 2; i++) {
9812+
const temp = numbers[i];
9813+
numbers[i] = numbers[numbers.length - 1 - i];
9814+
numbers[numbers.length - 1 - i] = temp;
9815+
}
9816+
9817+
console.log("Reversed array: " + numbers);
9818+
9819+
// Output: Reversed array: 5,4,3,2,1
9820+
```
9821+
9822+
Find the missing number in an array of size n containing numbers from 1 to n+1 without using any built-in functions/methods.
9823+
9824+
```javascript
9825+
const numbers = [1, 2, 3, 4, 6, 7, 8, 9, 10];
9826+
9827+
const n = numbers.length + 1;
9828+
9829+
let sum = (n * (n + 1)) / 2;
9830+
9831+
for (let i = 0; i < numbers.length; i++) {
9832+
sum -= numbers[i];
9833+
}
9834+
9835+
console.log("The missing number is: " + sum);
9836+
9837+
// Output: The missing number is: 5
9838+
```
9839+
9840+
Move all zeroes to the end of the array without using any built-in functions/methods.
9841+
9842+
```javascript
9843+
const numbers = [0, 2, 0, 4, 0, 6, 0, 8];
9844+
9845+
let count = 0;
9846+
9847+
for (let i = 0; i < numbers.length; i++) {
9848+
if (numbers[i] !== 0) {
9849+
numbers[count] = numbers[i];
9850+
count++;
9851+
}
9852+
}
9853+
9854+
while (count < numbers.length) {
9855+
numbers[count] = 0;
9856+
count++;
9857+
}
9858+
9859+
console.log("Array with zeroes at the end: " + numbers);
9860+
9861+
// Output: Array with zeroes at the end: 2,4,6,8,0,0,0,0
9862+
```
9863+
9864+
Find the "Kth" largest element in an array without using any built-in functions/methods.
9865+
9866+
```javascript
9867+
const numbers = [10, 5, 20, 15, 30];
9868+
9869+
const k = 2;
9870+
9871+
for (let i = 0; i < k; i++) {
9872+
let max = 0;
9873+
let maxIndex = 0;
9874+
9875+
for (let j = 0; j < numbers.length; j++) {
9876+
if (numbers[j] > max) {
9877+
max = numbers[j];
9878+
maxIndex = j;
9879+
}
9880+
}
9881+
9882+
numbers[maxIndex] = 0;
9883+
}
9884+
9885+
console.log("The " + k + "th largest element is: " + max);
9886+
9887+
// Output: The 2th largest element is: 20
9888+
```
9889+
9890+
Find the "Kth" smallest element in an array without using any built-in functions/methods.
9891+
9892+
```javascript
9893+
const numbers = [10, 5, 20, 15, 30];
9894+
9895+
const k = 2;
9896+
9897+
for (let i = 0; i < k; i++) {
9898+
let min = numbers[i];
9899+
let minIndex = i;
9900+
9901+
for (let j = i + 1; j < numbers.length; j++) {
9902+
if (numbers[j] < min) {
9903+
min = numbers[j];
9904+
minIndex = j;
9905+
}
9906+
}
9907+
9908+
// Swap the found minimum element with the element at index i
9909+
[numbers[i], numbers[minIndex]] = [numbers[minIndex], numbers[i]];
9910+
}
9911+
9912+
console.log("The " + k + "th smallest element is: " + numbers[k - 1]);
9913+
9914+
// Output: The 2th smallest element is: 10
9915+
```
9916+
9917+
Find the subarray with the given sum in a non-negative array without using any built-in functions/methods.
9918+
9919+
```javascript
9920+
const numbers = [1, 4, 20, 3, 10, 5];
9921+
9922+
const targetSum = 33;
9923+
9924+
let start = 0;
9925+
9926+
let sum = numbers[0];
9927+
9928+
for (let i = 1; i <= numbers.length; i++) {
9929+
while (sum > targetSum && start < i - 1) {
9930+
sum -= numbers[start];
9931+
start++;
9932+
}
9933+
9934+
if (sum === targetSum) {
9935+
console.log("Subarray with the given sum found between indexes " + start + " and " + (i - 1));
9936+
break;
9937+
}
9938+
9939+
if (i < numbers.length) {
9940+
sum += numbers[i];
9941+
}
9942+
}
9943+
9944+
// Output: Subarray with the given sum found between indexes 2 and 4
9945+
```
9946+
9947+
Kadane’s Algorithm: Find the maximum sum subarray without using any built-in functions/methods.
9948+
9949+
```javascript
9950+
const numbers = [-2, -3, 4, -1, -2, 1, 5, -3];
9951+
9952+
let maxSum = numbers[0];
9953+
9954+
let currentSum = numbers[0];
9955+
9956+
for (let i = 1; i < numbers.length; i++) {
9957+
if (currentSum + numbers[i] > numbers[i]) {
9958+
currentSum = currentSum + numbers[i];
9959+
} else {
9960+
currentSum = numbers[i];
9961+
}
9962+
9963+
if (currentSum > maxSum) {
9964+
maxSum = currentSum;
9965+
}
9966+
}
9967+
9968+
console.log("Maximum sum subarray: " + maxSum);
9969+
9970+
// Output: Maximum sum subarray: 7
9971+
```
9972+
9973+
Two Sum Problem: Find pairs in an array that sum to a target value without using any built-in functions/methods.
9974+
9975+
```javascript
9976+
const numbers = [2, 7, 11, 15];
9977+
9978+
const target = 9;
9979+
9980+
const pairs = [];
9981+
9982+
for (let i = 0; i < numbers.length; i++) {
9983+
for (let j = i + 1; j < numbers.length; j++) {
9984+
if (numbers[i] + numbers[j] === target) {
9985+
pairs[pairs.length] = [numbers[i], numbers[j]];
9986+
}
9987+
}
9988+
}
9989+
9990+
console.log("Pairs that sum to " + target + ": " + pairs);
9991+
9992+
// Output: Pairs that sum to 9: 2,7
9993+
```
9994+
9995+
Merge two sorted arrays without using any built-in functions/methods.
9996+
9997+
```javascript
9998+
const arr1 = [1, 3, 5, 7];
9999+
const arr2 = [2, 4, 6, 8];
10000+
10001+
const mergedArray = [];
10002+
10003+
let i = 0;
10004+
10005+
let j = 0;
10006+
10007+
while (i < arr1.length && j < arr2.length) {
10008+
if (arr1[i] < arr2[j]) {
10009+
mergedArray[mergedArray.length] = arr1[i];
10010+
i++;
10011+
} else {
10012+
mergedArray[mergedArray.length] = arr2[j];
10013+
j++;
10014+
}
10015+
}
10016+
10017+
while (i < arr1.length) {
10018+
mergedArray[mergedArray.length] = arr1[i];
10019+
i++;
10020+
}
10021+
10022+
while (j < arr2.length) {
10023+
mergedArray[mergedArray.length] = arr2[j];
10024+
j++;
10025+
}
10026+
10027+
console.log("Merged array: " + mergedArray);
10028+
10029+
// Output: Merged array: 1,2,3,4,5,6,7,8
10030+
```
10031+
10032+
Find the longest increasing subsequence in an array without using any built-in functions/methods.
10033+
10034+
```javascript
10035+
const numbers = [10, 22, 9, 33, 21, 50, 41, 60, 80];
10036+
10037+
const lis = [];
10038+
for (let i = 0; i < numbers.length; i++) {
10039+
lis[i] = 1;
10040+
}
10041+
10042+
for (let i = 1; i < numbers.length; i++) {
10043+
for (let j = 0; j < i; j++) {
10044+
if (numbers[i] > numbers[j] && lis[i] < lis[j] + 1) {
10045+
lis[i] = lis[j] + 1;
10046+
}
10047+
}
10048+
}
10049+
10050+
let maxLis = 0;
10051+
10052+
for (let i = 0; i < lis.length; i++) {
10053+
if (lis[i] > maxLis) {
10054+
maxLis = lis[i];
10055+
}
10056+
}
10057+
10058+
console.log("Length of the longest increasing subsequence: " + maxLis);
10059+
10060+
// Output: Length of the longest increasing subsequence: 6
10061+
```
10062+
10063+
Trapping Rain Water Problem without using any built-in functions/methods.
10064+
10065+
```javascript
10066+
const heights = [0, 1, 0, 2, 1, 0, 1, 3, 2, 1, 2, 1];
10067+
10068+
let totalWater = 0;
10069+
10070+
for (let i = 1; i < heights.length - 1; i++) {
10071+
let leftMax = 0;
10072+
for (let j = 0; j < i; j++) {
10073+
if (heights[j] > leftMax) {
10074+
leftMax = heights[j];
10075+
}
10076+
}
10077+
10078+
let rightMax = 0;
10079+
for (let j = i + 1; j < heights.length; j++) {
10080+
if (heights[j] > rightMax) {
10081+
rightMax = heights[j];
10082+
}
10083+
}
10084+
10085+
const minMax = leftMax < rightMax ? leftMax : rightMax;
10086+
totalWater += minMax > heights[i] ? minMax - heights[i] : 0;
10087+
10088+
console.log("Total trapped rainwater: " + totalWater);
10089+
10090+
// Output: Total trapped rainwater: 6
10091+
}
10092+
```
10093+
974610094
[Back to Top⤴️](#table-of-contents)
974710095
974810096
## List of GitHub Repositories to learn JavaScript

index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
console.log("Welcome");
1+
console.log("Thanks for using learn-javascript!");

0 commit comments

Comments
 (0)