設計乙個找到資料流中第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
你可以假設nums
的長度≥k-1
且k
≥ 1。
解題思路: 使用小頂堆來處理 topn 的問題
用到了util包裡的priorityqueue
用法很簡單,**如下:
class kthlargest
}public int add(int val) else if(pq.peek()return pq.peek();
}}
703 資料流中的第K大元素
設計乙個找到資料流中第k大元素的類 class 注意是排序後的第k大元素,不是第k個不同的元素。你的 kthlargest 類需要乙個同時接收整數 k 和整數陣列nums 的構造器,它包含資料流中的初始元素。每次呼叫 kthlargest.add,返回當前資料流中第k大的元素。示例 int k 3 ...
703 資料流中的第K大元素
設計乙個找到資料流中第k大元素的類 class 注意是排序後的第k大元素,不是第k個不同的元素。你的kthlargest類需要乙個同時接收整數k和整數陣列nums的構造器,它包含資料流中的初始元素。每次呼叫kthlargest.add,返回當前資料流中第k大的元素。示例 int k 3 int ar...
703 資料流中的第K大元素
題目 設計乙個找到資料流中第k大元素的類 class 注意是排序後的第k大元素,不是第k個不同的元素。你的 kthlargest 類需要乙個同時接收整數 k 和整數陣列nums 的構造器,它包含資料流中的初始元素。每次呼叫 kthlargest.add,返回當前資料流中第k大的元素。示例 int k...