java: add «703. Kth Largest Element in a Stream»
Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
parent
2e4f1e770b
commit
28379bfe10
1 changed files with 27 additions and 0 deletions
27
java/kth-largest-element-in-a-stream.java
Normal file
27
java/kth-largest-element-in-a-stream.java
Normal file
|
@ -0,0 +1,27 @@
|
|||
import java.util.PriorityQueue;
|
||||
|
||||
class KthLargest {
|
||||
int k;
|
||||
private PriorityQueue<Integer> heap;
|
||||
|
||||
public KthLargest(int k, int[] nums) {
|
||||
this.k = k;
|
||||
heap = new PriorityQueue<>(k + 1);
|
||||
|
||||
for (var num : nums) {
|
||||
add(num);
|
||||
}
|
||||
}
|
||||
|
||||
public int add(int val) {
|
||||
if (heap.size() < k || heap.peek() < val) {
|
||||
heap.add(val);
|
||||
|
||||
if (heap.size() > k) {
|
||||
heap.remove();
|
||||
}
|
||||
}
|
||||
|
||||
return heap.peek();
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue