Skip to content

Commit 04e2345

Browse files
committed
feat: Upload top-k-frequent-element solution (typescript)
1 parent dd7c18f commit 04e2345

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

top-k-frequent-elements/mike2ox.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/**
2+
* Source: https://leetcode.com/problems/top-k-frequent-elements/
3+
* 풀이방법: 순회를 통해 빈도수를 저장, Object.entries를 통해 정렬하여 k개까지 반환
4+
* 시간복잡도: O(nlogn)
5+
* 공간복잡도: O(n)
6+
*
7+
* 생각나는 풀이방법
8+
*/
9+
function topKFrequent(nums: number[], k: number): number[] {
10+
const KFrequentObject = new Object();
11+
const result = new Array();
12+
for (let num of nums) {
13+
if (!Object.hasOwn(KFrequentObject, num)) KFrequentObject[num] = 0;
14+
KFrequentObject[num]++;
15+
}
16+
// Object.entries를 통해 key, value를 배열로 반환 (포인트)
17+
let sorted = Object.entries(KFrequentObject).sort((a, b) => b[1] - a[1]);
18+
for (let node of sorted) {
19+
result.push(parseInt(node[0]));
20+
}
21+
return result.slice(0, k);
22+
}

0 commit comments

Comments
 (0)