
一、题目描述

二、算法原理
思路:维护 k 个节点的小根堆
例如:

三、代码实现
cpp
class KthLargest {
public:
KthLargest(int k, vector<int>& nums) {
_k = k;
for(auto& e : nums)
{
minI.push(e);
if(minI.size() > k) minI.pop();//维护 k 个节点的堆
}
}
int add(int val) {
minI.push(val);
if(minI.size() > _k) minI.pop();
if(minI.size() < _k) return 0;//没有第 k 大的值
return minI.top();
}
private:
int _k;
priority_queue<int,vector<int>,greater<int>> minI;
};