0
点赞
收藏
分享

微信扫一扫

703. 数据流中的第 K 大元素


算是利用Java官方的优先级队列解决TopK问题吧

703. 数据流中的第 K 大元素_leetcode


k来确定优先级队列的最大容量,然后传入的nums数组表示待加入的数据流,再通过add方法来限制queue存储的元素,最后add方法返回最小堆的堆顶元素。

代码实现

class KthLargest {

private PriorityQueue<Integer> queue;
private int limit;

public KthLargest(int k, int[] nums) {
limit = k;
queue = new PriorityQueue<>(k);
for (int num : nums) {
add(num);
}
}

public int add(int val) {
if (queue.size() < limit) {
queue.add(val);
} else if (val > queue.peek()) {
queue.poll();
queue.add(val);
}

return queue.peek();
}

}


举报

相关推荐

0 条评论