703. 数据流中的第 K 大元素
分类:堆
维护一个从小到大,大小为k的优先队列,队列的第一个元素就是第k大元素。
可以用小顶堆实现,可以用STL实现
class KthLargest {
private:
priority_queue<int, vector<int>, greater<int>> q;
int size;
public:
KthLargest(int k, vector<int>& nums) {
size = k;
for(int &num : nums) q.push(num);
while(q.size() > size) q.pop();
}
int add(int val) {
q.push(val);
if(q.size() > size) q.pop();
return q.top();
}
};
2021/02/11