From 28379bfe10d4c25a258937f195e75235633104ff Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Mon, 12 Aug 2024 11:50:04 +0200 Subject: [PATCH] =?UTF-8?q?java:=20add=20=C2=AB703.=20Kth=20Largest=20Elem?= =?UTF-8?q?ent=20in=20a=20Stream=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Matej Focko --- java/kth-largest-element-in-a-stream.java | 27 +++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 java/kth-largest-element-in-a-stream.java diff --git a/java/kth-largest-element-in-a-stream.java b/java/kth-largest-element-in-a-stream.java new file mode 100644 index 0000000..e42bd4d --- /dev/null +++ b/java/kth-largest-element-in-a-stream.java @@ -0,0 +1,27 @@ +import java.util.PriorityQueue; + +class KthLargest { + int k; + private PriorityQueue 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(); + } +}