Skip to content

Commit dbbe7b3

Browse files
committed
Create f-exuan21.java
Top K Frequent Elements Solutions
1 parent 5a960f8 commit dbbe7b3

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
2+
class Solution {
3+
public int[] topKFrequent(int[] nums, int k) {
4+
Map<Integer, Integer> map = new HashMap<>();
5+
for(int num : nums) {
6+
map.put(num, map.getOrDefault(num, 0) + 1);
7+
}
8+
9+
PriorityQueue<Map.Entry<Integer, Integer>> queue = new PriorityQueue<>(
10+
(a, b) -> Integer.compare(b.getValue(), a.getValue())
11+
);
12+
13+
for(Map.Entry<Integer, Integer> entry : map.entrySet()) {
14+
queue.offer(entry);
15+
}
16+
17+
int[] res = new int[k];
18+
19+
for(int i = 0; i < k; i++) {
20+
res[i] = queue.poll().getKey();
21+
}
22+
23+
return res;
24+
}
25+
}
26+
27+
// time : O(n) + O(m log m) + O(k log m) = O(n + m*logm + k*logm)
28+
//
29+
// ์ตœ์•…์˜ ๊ฒฝ์šฐ n log n ์ด ๋  ์ˆ˜ ์žˆ์Œ
30+
// space : O(m) + O(m) + O(k) = O(m + k)
31+
// ์ตœ์•…์˜ ๊ฒฝ์šฐ n + k ๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ
32+
33+
// n : nums์˜ ๊ธธ์ด
34+
// m : nums์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ์ˆซ์ž์˜ ๊ฐœ์ˆ˜
35+

0 commit comments

Comments
ย (0)