牛客网
使用大根堆,把超过给定数量的值全部弹出。
注意k超过了向量的长度则返回空
class Solution {
public:
vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
if(input.size() < k) return vector<int>();
priority_queue<int> pq;
for(int i = 0; i < input.size(); i++){
pq.push(input[i]);
while(pq.size() > k) pq.pop();
}
vector<int> res;
while(pq.size()){
res.push_back(pq.top());
pq.pop();
}
return res;
}
};