采用优先队列来求解问题
class Solution {
public:
vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
if(k == 0){
return {};
}
priority_queue<int> pq;
for(int i=0; i<k; i++){
pq.push(input[i]);
}
for(int i=k; i<input.size(); i++){
if(input[i] < pq.top()){
pq.pop();
pq.push(input[i]);
}
}
vector<int> res;
while(!pq.empty()){
int a = pq.top();
res.push_back(a);
pq.pop();
}
return res;
}
};