题解 | #最小的K个数#

最小的K个数

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

#include <queue>
#include <vector>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param input int整型vector 
     * @param k int整型 
     * @return int整型vector
     */
    vector<int> GetLeastNumbers_Solution(vector<int>& input, int k) {
        // write code here
        vector<int> res;
        if (k == 0 || input.size() == 0) {
            return  res;
        }
        priority_queue<int> bigRootHeap;
        for (int i = 0; i < k; i++) {
            bigRootHeap.push(input[i]);
        }
        for (int i = k; i< input.size(); i++) {
            if (input[i] < bigRootHeap.top()) {
                bigRootHeap.pop();
                bigRootHeap.push(input[i]);
            }
        }
        while (!bigRootHeap.empty()) {
            res.push_back(bigRootHeap.top());
            bigRootHeap.pop();
        }
        return  res;
    }
};

在线编程练习 文章被收录于专栏

C++在线编程练习题解

全部评论

相关推荐

不愿透露姓名的神秘牛友
01-07 00:20
点赞 评论 收藏
分享
joecii:如果没有工资,那可能没有工资是这家公司最小的问题了
找实习记录
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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