---------------🎈🎈题目链接🎈🎈-------------------

PriorityQueue
PriorityQueue
priorityQueue.add(5);
priorityQueue.offer(5);
Integer head = priorityQueue.peek();
Integer removedElement = priorityQueue.poll();
priorityQueue.remove(5);
int size = priorityQueue.size();
for (Integer element : priorityQueue) { System.out.println(element); }
priorityQueue.clear();
PriorityQueue
时间复杂度O(N)
空间复杂度O(N)
class Solution {
public int findKthLargest(int[] nums, int k) {
// 维护一个大小为k的优先级队列PriorityQueue 小顶堆升序
PriorityQueue myqueue = new PriorityQueue<>((o1,o2) -> o1-o2); // 升序 小顶堆
for(int num:nums){
if(myqueue.size() < k){
myqueue.add(num);
}
else{
if(myqueue.peek() < num){
myqueue.poll();
myqueue.add(num);
}
}
}
return myqueue.peek();
}
}
上一篇:【C语言】指针初阶