// 用小顶堆维护k个最大的数,每次来一个数直接插入,
// 如果堆中元素个数大于k,移除堆顶元素
// 堆顶就是第k大的元素
class KthLargest {
PriorityQueue<Integer> que;
int size = 0;
public KthLargest(int k, int[] nums) {
size = k;
que = new PriorityQueue<>();
for (int i = 0; i < nums.length; i++) {
que.offer(nums[i]);
if (que.size() > k) {
que.poll();
}
}
}
public int add(int val) {
que.offer(val);
if (que.size() > size)
que.poll();
return que.peek();
}
}
Leetcode 703 数据流中的第k大元素 堆
最新推荐文章于 2022-07-09 15:33:33 发布