Skip to content

Commit 8031e40

Browse files
committed
add solution of top-k-frequent-elements
1 parent 405949d commit 8031e40

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package week01.top_k_frequent_elements;
2+
3+
import java.util.Arrays;
4+
import java.util.HashMap;
5+
import java.util.Iterator;
6+
import java.util.Map;
7+
8+
class Solution {
9+
public int[] topKFrequent(int[] nums, int k) {
10+
11+
Map<Integer, Integer> frequencyMap = new HashMap<>();
12+
for(int num : nums) {
13+
frequencyMap.put(num, frequencyMap.getOrDefault(num, 0) + 1);
14+
}
15+
16+
Map.Entry<Integer, Integer>[] arr = new Map.Entry[frequencyMap.size()];
17+
Iterator<Map.Entry<Integer, Integer>> iterator = frequencyMap.entrySet().iterator();
18+
for (int i=0; i<arr.length; i++) {
19+
arr[i] = iterator.next();
20+
}
21+
22+
Arrays.sort(arr, (e1, e2) -> e2.getValue() - e1.getValue());
23+
24+
int[] answer = new int[k];
25+
for (int i=0; i<k; i++) {
26+
answer[i] = arr[i].getKey();
27+
}
28+
29+
return answer;
30+
}
31+
}

0 commit comments

Comments
 (0)