LeetCode Solutions
215. Kth Largest Element in an Array
Time: $O(n\log k)$ Space: $O(k)$
class Solution {
public:
int findKthLargest(vector<int>& nums, int k) {
priority_queue<int, vector<int>, greater<>> minHeap;
for (const int num : nums) {
minHeap.push(num);
if (minHeap.size() > k)
minHeap.pop();
}
return minHeap.top();
}
};
class Solution {
public int findKthLargest(int[] nums, int k) {
Queue<Integer> minHeap = new PriorityQueue<>((a, b) -> a - b);
for (final int num : nums) {
minHeap.offer(num);
while (minHeap.size() > k)
minHeap.poll();
}
return minHeap.peek();
}
}
class Solution:
def findKthLargest(self, nums: List[int], k: int) -> int:
minHeap = []
for num in nums:
heapq.heappush(minHeap, num)
if len(minHeap) > k:
heapq.heappop(minHeap)
return minHeap[0]