LeetCodeHot100 堆 215. 数组中的第K个最大元素 347. 前 K 个高频元素
215. 数组中的第K个最大元素
https://leetcode.cn/problems/kth-largest-element-in-an-array/description/?envType=study-plan-v2&envId=top-100-liked

public int findKthLargest(int[] nums, int k) {
PriorityQueue<Integer> queue = new PriorityQueue<>((o1, o2) -> o2-o1);
for (int num : nums) {
queue.offer(num);
}
for (int i = 0; i < k - 1; i++) {
queue.poll();
}
return queue.poll();
}
总结:优先级队列
347. 前 K 个高频元素
https://leetcode.cn/problems/top-k-frequent-elements/description/?envType=study-plan-v2&envId=top-100-liked

public int[] topKFrequent(int[] nums, int k) {
int[] res = new int[k];
HashMap<Integer,Integer> map = new HashMap<>();
for (int num : nums) {
Integer count = map.getOrDefault(num, 0) + 1;
map.put(num,count);
}
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(( o1, o2) -> map.get(o2) - map.get(o1));
for (Integer integer : map.keySet()) {
priorityQueue.add(integer);
}
for (int i = 0; i < k; i++) {
res[i] = priorityQueue.poll();
}
return res;
}
总结:hashmap存,优先级队列排序
浙公网安备 33010602011771号