Skip to content

Commit 5160466

Browse files
authored
Merge pull request neetcode-gh#92 from troy8/javascript-code
[JAVASCRIPT] 347-Top-K-Frquent-Elements solution
2 parents b838aac + fee0982 commit 5160466

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/**
2+
* @param {number[]} nums
3+
* @param {number} k
4+
* @return {number[]}
5+
*/
6+
var topKFrequent = function(nums, k) {
7+
let map = new Map();
8+
let res = [];
9+
let bucket = new Array(nums.length+1);
10+
11+
// storing frequency of numbers in a map
12+
for (let n of nums) {
13+
map.set(n, (map.has(n) ? 1 + map.get(n) : 1))
14+
}
15+
16+
// Poppulate the bucket with numbers in frequency
17+
// as the index of the bucket
18+
for (let [key,value] of map.entries()) {
19+
if (!Array.isArray(bucket[value])) {
20+
bucket[value] = [];
21+
}
22+
bucket[value].push(key);
23+
}
24+
25+
for (let i = bucket.length-1; i >= 0; i--) {
26+
if (Array.isArray(bucket[i])) {
27+
for (let n of bucket[i]) {
28+
res.push(n);
29+
if (res.length === k)
30+
return res;
31+
}
32+
}
33+
}
34+
};

0 commit comments

Comments
 (0)