讨论/《堆》 - 703. 数据流中的第 K 大元素/
《堆》 - 703. 数据流中的第 K 大元素
共 2 个回复

当初始化的时候输入数组不足k个,可以用MIN_VALUE来做补充生成k个大小的堆

1
class KthLargest {
public:
    priority_queue<int, vector<int>, greater<int>> q;
    int k;
    KthLargest(int k, vector<int>& nums) {
        this->k = k;
        for (auto& x: nums) {
            add(x);
        }
    }
    
    int add(int val) {
        q.push(val);
        if (q.size() > k) {
            q.pop();
        }
        return q.top();
    }
};

/**
 * Your KthLargest object will be instantiated and called as such:
 * KthLargest* obj = new KthLargest(k, nums);
 * int param_1 = obj->add(val);
 */