Skip to content

Commit 8441a5f

Browse files
committed
add Top K Frequent Elements solution
1 parent d5e20a0 commit 8441a5f

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/**
2+
* [Problem]: [347] Top K Frequent Elements
3+
* (https://leetcode.com/problems/top-k-frequent-elements/description/)
4+
*/
5+
6+
function topKFrequent(nums: number[], k: number): number[] {
7+
// 시간복잡도 O(nlogn)
8+
// 공간복잡도 O(n)
9+
function mapFun(nums: number[], k: number): number[] {
10+
const frequentMap = new Map<number, number>();
11+
12+
for (let i = 0; i < nums.length; i++) {
13+
frequentMap.set(nums[i], (frequentMap.get(nums[i]) || 0) + 1);
14+
}
15+
16+
const sorted = Array.from(frequentMap.entries()).sort((a, b) => b[1] - a[1]);
17+
18+
return sorted.slice(0, k).map(([num]) => num);
19+
}
20+
21+
return mapFun(nums, k);
22+
}

0 commit comments

Comments
 (0)