PriorityQueue
Ordering a priorityqueue based on value in hashmap
1public int[] topKFrequent(int[] nums, int k) {
2 Map<Integer, Integer> map = new HashMap<>();
3 for (int i = 0; i < nums.length; i++) {
4 map.put(nums[i], map.getOrDefault(nums[i], 0) + 1);
5 }
6 PriorityQueue<Integer> queue = new PriorityQueue<>((a, b) -> {
7 return map.get(b) - map.get(a);
8 });
9 queue.addAll(map.keySet());
10
11 int[] arr = new int[k];
12 for (int i = 0; i < k; i++) {
13 arr[i] = queue.poll();
14 }
15 return arr;
16}