---------------🎈🎈题目链接🎈🎈-------------------
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 小顶堆升序 PriorityQueuemyqueue = 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语言】指针初阶