// 用小顶堆维护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大元素 堆
小顶堆实现KthLargest类
最新推荐文章于 2024-11-11 20:00:35 发布
本文介绍了一个使用小顶堆实现的KthLargest类,该类能够高效地找到一组整数中的第k大的数。通过不断插入新元素并保持堆中元素数量为k,确保堆顶始终是最小的k个数中的最大值。

963

被折叠的 条评论
为什么被折叠?



