Skip to content

Commit f9ab862

Browse files
committed
top k freq solution
1 parent cb574a6 commit f9ab862

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

top-k-frequent-elements/nancyel.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
/**
2+
* time complexity: O(n + m log m),
3+
* n = length of input array
4+
* m = number of unique elements (m ≤ n)
5+
* space complexity: O(m)
6+
*/
7+
8+
function topKFrequent(nums: number[], k: number): number[] {
9+
const freqMap = new Map<number, number>();
10+
11+
// Count frequencies using a map: O(n)
12+
for (const num of nums) {
13+
freqMap.set(num, (freqMap.get(num) || 0) + 1);
14+
}
15+
16+
// Extract the top k elements
17+
return Array.from(freqMap.entries()) // O(m)
18+
.sort(([, a], [, b]) => b - a) // O(m log m)
19+
.slice(0, k)
20+
.map(([num]) => num); // extract the keys only
21+
}

0 commit comments

Comments
 (0)