class KthLargestElementInAnArray {
    public int findKthLargest(int[] nums, int k) {
        PriorityQueue<Integer> minHeap = new PriorityQueue<>();
        for (int i = 0; i < k; i++){
            minHeap.add(nums[i]);
        }
        
        for (int i = k; i < nums.length; i++){
            if(nums[i] > minHeap.peek()){
                minHeap.poll();
                minHeap.add(nums[i]);
            }
        }
        
        return minHeap.peek();
        
    }
}

Top K问题结合Heap。

 

Time Complexity: O(K * logK + (N-K) * logK)

Sapce Complexity: O(K)

posted on 2022-04-12 10:41  黎酒  阅读(28)  评论(0)    收藏  举报