• 采用优先队列,按照升序排列数组;
  • 将最小的k个数放入结果。
class Solution {
public:
    vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
        if (k > input.size()) return {};
        vector<int> result;
        priority_queue<int,vector<int>, greater<int>> pq;
        for (auto in : input) {
            pq.push(in);
        }
        while (k--) {
            result.push_back(pq.top());
            pq.pop();
        }
        return result;
    }
};