Skip to content

Commit d3774cd

Browse files
committed
solve: Week -1 top k frequent elements
1 parent 3bd81ec commit d3774cd

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
2+
/**
3+
* Finds the k most frequent elements in an array.
4+
* Uses a map to count occurrences and then sorts by frequency.
5+
*
6+
* @param nums - An array of integers.
7+
* @param k - The number of most frequent elements to return.
8+
* @returns An array of the k most frequent elements.
9+
*
10+
* Time Complexity: O(n log n)
11+
* Space Complexity: O(n)
12+
*/
13+
function topKFrequent(nums: number[], k: number): number[] {
14+
let numMap = new Map();
15+
for (let i = 0; i < nums.length; i++) {
16+
numMap.set(nums[i], (numMap.get(nums[i]) ?? 0) + 1);
17+
}
18+
19+
return Array.from(numMap.entries())
20+
.sort((a, b) => b[1] - a[1])
21+
.slice(0, k)
22+
.map(([num, _]) => num);
23+
};

0 commit comments

Comments
 (0)