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)
浙公网安备 33010602011771号