解法一:维护最大最小值 -> 堆 -> k个元素的最小值堆
java
class Solution {
public int findKthLargest(int[] nums, int k) {
// 维护最大最小值 -> 堆 -> k个元素的最小值堆
PriorityQueue<Integer> heap = new PriorityQueue<>((n1, n2) -> n1 - n2);
for (int i = 0; i < nums.length; i++) {
heap.offer(nums[i]);
if (heap.size() > k) {
// 维护k个元素的最小值堆
heap.poll();
}
}
return heap.peek();
}
}
注意:
- 当堆元素个数大于k时,要剔除元素:
heap.poll()