思路
将数组中的元素放在大根堆中,弹出第k个元素即为第k大元素。
代码
public int findKthLargest(int[] nums, int k) {
PriorityQueue<Integer> queue = new PriorityQueue<>(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o2-o1;
}
});
for (int num : nums) {
queue.add(num);
}
while (k>1){
queue.poll();
k--;
}
return queue.poll();
}