1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| class KthLargest {
private final Queue<Integer> minHeap; private final int k;
public KthLargest(int k, int[] nums) { this.minHeap = new PriorityQueue<>(); this.k = k;
for (int num : nums) { add(num); } }
public int add(int val) { if (minHeap.size() < k) { minHeap.offer(val); } else { if (val > minHeap.peek()) { minHeap.offer(val); minHeap.poll(); } }
return minHeap.peek(); }
}
|
References
703. Kth Largest Element in a Stream