题解 | #最小的K个数#

最小的K个数

https://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf

#include <pthread.h>
#include <queue>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param input int整型vector 
     * @param k int整型 
     * @return int整型vector
     */
    bool operator()(const int & a, const int & b){ // 小顶堆比较大小
        return a >b ;
    }
    vector<int> GetLeastNumbers_Solution(vector<int>& input, int k) {
        // write code here
        priority_queue<int> priQue; 
        for(int val : input){
            priQue.push(val);
            if(priQue.size() > k){ //若小顶堆大小大于k,则弹出
                priQue.pop();
            }

        }
        vector<int> result;
        while(k--){// 保存结果
            result.push_back(priQue.top());
            priQue.pop();
        }
        return result;
    }
};

全部评论

相关推荐

点赞 评论 收藏
分享
有担当的灰太狼又在摸鱼:零帧起手查看图片
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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