public class Solution {
    public int[] findKthLargest(int[] nums, int k) {
        if (nums == null || nums.length == 0) {
            return -1;
        }

        Queue<Integer> minHeap = new PriorityQueue<Integer>();
        for(int i = 0; i < nums.length; i++) {
            if (i < k) {
                minHeap.offer(nums[i]);
            } else if (nums[i] > minHeap.peek()) {
                minHeap.poll();
                minHeap.offer(nums[i]);
            }
        }
        int[] result = new int[minHeap.size()];
        for (int i = minHeap.size() - 1; i>= 0; i--) {
            result[i] = minHeap.poll();
        }
        return result;
    }
}

results matching ""

    No results matching ""