思路:
直接排序是可以的,但是时间复杂度不符合。可以使用优先队列,代码如下:
class Solution {
public int findKthLargest(int[] nums, int k) {
if (nums==null||nums.length==0||k<0||k>nums.length){
return Integer.MAX_VALUE;
}
PriorityQueue<Integer> queue = new PriorityQueue<>(Comparator.reverseOrder());
for (int num : nums) {
queue.add(num);
}
for (int i = 1; i < k; i++) {
queue.poll();
}
return queue.poll();
}
}