题解 | #寻找第K大#

寻找第K大

http://www.nowcoder.com/practice/e016ad9b7f0b45048c58a9f27ba618bf

第K大数,用小顶堆实现,堆中的其他元素都大于堆顶元素。

class Solution {
public:
    int findKth(vector<int> a, int n, int K) {
        priority_queue<int,vector<int>,greater<int>> min_heap{};
        for(int i=0;i<K;i++) min_heap.push(a[i]);
        for(int i=K;i<n;i++){
            if(a[i]>min_heap.top()){
                min_heap.pop();
                min_heap.push(a[i]);
            }
        }
        return min_heap.top();
    }
};
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务