Find the kth largest element in an unsorted array. Note that it is the kth largest element in the sorted order, not the kth distinct element.
For example,
Given [3,2,1,5,6,4]
and k = 2, return 5.
class Solution { public int findKthLargest(int[] nums, int k) { PriorityQueue<Integer> queue = new PriorityQueue<>(); for (int num : nums) { queue.offer(num); if (queue.size() > k) { queue.poll(); } } return queue.peek(); } } class Solution { public int findKthLargest(int[] nums, int k) { Arrays.sort(nums); return nums[nums.length - k]; } }
Creates a
PriorityQueue
with the default initial capacity (11) that orders its elements according to their natural ordering.natural ordering: 1 2 3 4 5 6 7 10 11 12 20 21 (reference)