Skip to content

Commit e7c8954

Browse files
committed
Add week 1 solutions: top-k-frequent-elements
1 parent 2ae9f86 commit e7c8954

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+
* https://leetcode.com/problems/top-k-frequent-elements/
3+
* time complexity : O(n)
4+
* space complexity : O(n)
5+
*/
6+
function topKFrequent(nums: number[], k: number): number[] {
7+
const record = nums.reduce((acc, curr) => {
8+
acc[curr] = (acc[curr] ?? 0) + 1;
9+
return acc;
10+
}, {});
11+
12+
const array: Array<number[]> = new Array(nums.length);
13+
for (const num in record) {
14+
const v = record[num];
15+
if (!array[v]) {
16+
array[v] = [];
17+
}
18+
array[v].push(Number(num));
19+
}
20+
21+
return array.reduce((acc, curr) => [...curr, ...acc], []).slice(0, k);
22+
};

0 commit comments

Comments
 (0)