C/C++教程

LeetCode703(数据流中的第K大元素)

本文主要是介绍LeetCode703(数据流中的第K大元素),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

用优先队列存储前k大元素,堆顶是第k大元素,每一次添加一个元素道优先队列,如果队列长度大于k就pop堆顶元素

参考https://blog.csdn.net/qq_41687938/article/details/117827166

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

 

这篇关于LeetCode703(数据流中的第K大元素)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!