日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

leetcode703. 数据流中的第K大元素(PriorityQueue 最小堆)

發布時間:2023/12/29 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode703. 数据流中的第K大元素(PriorityQueue 最小堆) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

設計一個找到數據流中第K大元素的類(class)。注意是排序后的第K大元素,不是第K個不同的元素。

你的 KthLargest 類需要一個同時接收整數 k 和整數數組nums 的構造器,它包含數據流中的初始元素。每次調用 KthLargest.add,返回當前數據流中第K大的元素。

示例:

int k = 3;
int[] arr = [4,5,8,2];
KthLargest kthLargest = new KthLargest(3, arr);
kthLargest.add(3); // returns 4
kthLargest.add(5); // returns 5
kthLargest.add(10); // returns 5
kthLargest.add(9); // returns 8
kthLargest.add(4); // returns 8

class KthLargest {final PriorityQueue<Integer> minHeap;final int k;public KthLargest(int k, int[] nums) {this.minHeap=new PriorityQueue(k);this.k=k;for(int i=0;i<nums.length;i++){add(nums[i]);} }public int add(int val) {if(minHeap.size()<k){minHeap.offer(val); } else if(minHeap.peek()<val){minHeap.poll();minHeap.offer(val); }return minHeap.peek(); } }

總結

以上是生活随笔為你收集整理的leetcode703. 数据流中的第K大元素(PriorityQueue 最小堆)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。