题目 |
题目传送门:传送门(点击此处)
题解 |
思路
这道题目是有难度的,如果使用先排序的方法,就有一点墨迹了,所以我们这道题目借助堆的数据结构,实现最大堆就可以了
代码
class Solution {
public int findKthLargest(int[] nums, int k) {
// init heap 'the smallest element first'
PriorityQueue<Integer> heap = new PriorityQueue<Integer>((n1, n2) -> n1 - n2);
// keep k largest elements in the heap
for (int n : nums) {
heap.add(n);
if (heap.size() > k)
heap.poll();
}
// output
return heap.poll();
}
}