求最小k個數

癟癟前端加油發表於2020-12-24
class Solution {
public:
    vector<int> smallestK(vector<int>& arr, int k) {
        vector<int> res;
        priority_queue<int> q;//預設為大頂堆,用greater就是小頂堆
        for(int a : arr) {
            q.push(a);
            if(q.size() > k) {
                q.pop();
            }
        }
        while(!q.empty()) {
            res.push_back(q.top());
            q.pop();
        }
        return res;
    }
};

相關文章