Skip to content

Commit 8c0aaa9

Browse files
committed
getNalargest.js
1 parent 0a2f591 commit 8c0aaa9

1 file changed

Lines changed: 88 additions & 0 deletions

File tree

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
// 33. Get N Largest Elements from an Array
2+
3+
// Brute Force Approach
4+
5+
// Example: If we have n=3 then array largArr will be having a length equal to 3 then we will run for loop one by one to fill the element in the largArr.
6+
7+
{
8+
let largArr = new Array();
9+
let arr = new Array(93, 17, 56, 91, 98, 33, 9, 38, 55, 78, 29, 81, 60);
10+
11+
function largest() {
12+
largArr[0] = 0;
13+
largArr[1] = 0;
14+
largArr[2] = 0;
15+
16+
for (let i = 0; i < arr.length; i++) {
17+
if (arr[i] > largArr[0]) {
18+
largArr[0] = arr[i];
19+
}
20+
}
21+
22+
for (let i = 0; i < arr.length; i++) {
23+
if (arr[i] > largArr[1] && arr[i] < largArr[0]) {
24+
largArr[1] = arr[i];
25+
}
26+
}
27+
for (let i = 0; i < arr.length; i++) {
28+
if (arr[i] > largArr[2] && arr[i] < largArr[1]) {
29+
largArr[2] = arr[i];
30+
}
31+
}
32+
console.log(largArr[0]);
33+
console.log(largArr[1]);
34+
35+
console.log(largArr[2]);
36+
}
37+
largest();
38+
}
39+
40+
// Optimized Solution:
41+
42+
{
43+
let largArr = new Array();
44+
let arr = new Array(93, 17, 56, 91, 98, 33, 9, 38, 55, 78, 29, 81, 60);
45+
46+
findLargest3();
47+
function findLargest3() {
48+
// arr.sort((a, b) => a < b ? 1 : a > b ? -1 : 0);
49+
arr.sort((a, b) => b - a);
50+
console.log(arr[0]);
51+
console.log(arr[1]);
52+
console.log(arr[2]);
53+
54+
console.log(arr.slice(0, 3));
55+
}
56+
}
57+
58+
// Using Math.max and filter() method
59+
60+
{
61+
function getNLargestELementWithFilter(arr, n) {
62+
const largestELements = [];
63+
for (let i = 0; i < n; i++) {
64+
const max = Math.max(...arr);
65+
largestELements.push(max);
66+
arr = arr.filter((num) => num !== max);
67+
}
68+
return largestELements;
69+
}
70+
71+
const array = [1, 8, 3, 5, 9, 2];
72+
console.log(getNLargestELementWithFilter(array, 4));
73+
}
74+
75+
// Using Array.reduce
76+
77+
{
78+
const array = [10, 5, 20, 8, 15];
79+
const n = 3;
80+
const largestELements = array.reduce((acc, curr) => {
81+
if (acc.length < n || curr > acc[acc.length - 1]) {
82+
acc.push(curr);
83+
}
84+
return acc.sort((a, b) => b - a).slice(0, n);
85+
}, []);
86+
87+
console.log("Largest Elements:", largestELements);
88+
}

0 commit comments

Comments
 (0)