Skip to content

Commit 2d72388

Browse files
committed
feat: top k frequent elements
1 parent ddca66d commit 2d72388

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

top-k-frequent-elements/anniemon.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/**
2+
* 시간 복잡도:
3+
* nums.length만큼의 배열을 정렬해야 하므로
4+
* 즉, O(n * log n)
5+
* 공간 복잡도:
6+
* 최대 nums.length만큼의 map 생성
7+
* 즉, O(n)
8+
*/
9+
/**
10+
* @param {number[]} nums
11+
* @param {number} k
12+
* @return {number[]}
13+
*/
14+
var topKFrequent = function(nums, k) {
15+
const map = new Map();
16+
for(const n of nums) {
17+
if(!map.has(n)) {
18+
map.set(n, 0);
19+
}
20+
map.set(n, map.get(n) + 1)
21+
}
22+
const sorted = Array.from(map).sort((a, b) => b[1]-a[1]);
23+
return sorted.slice(0, k).map(e => e[0])
24+
};

0 commit comments

Comments
 (0)