/**
*最最最最典型的topK的问题,在这里先用优先队列实现一下子
*/
public class Solution {
public int findKthLargest(int[] nums, int k) {
PriorityQueue<Integer> priorityQueue = new PriorityQueue<Integer>(k, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1.compareTo(o2);
}
});
for(int i : nums){
if(priorityQueue.size() >= k){
if(priorityQueue.peek() < i){
priorityQueue.poll();
priorityQueue.add(i);
}
}else {
priorityQueue.add(i);
}
}
return priorityQueue.poll();
}
}