AcWing 53. 最小的k个数
原题链接
简单
作者:
adamXu
,
2020-09-28 23:05:43
,
所有人可见
,
阅读 322
class Solution {
public:
vector<int> getLeastNumbers_Solution(vector<int> input, int k) {
//创建一个大顶堆,保存k个元素,如果元素比堆顶小,那么就把元素放进去,把堆顶干掉
priority_queue<int> heap;
for(auto x : input) {
heap.push(x);
if (heap.size() > k) heap.pop();
}
vector<int> res;
while(heap.size()) { //heap 不可以用for(auto x:heap)
res.push_back(heap.top());
heap.pop();
}
reverse(res.begin(), res.end()); //开始以为是res.reverse().... 原来是reverse(res.begin()...
return res;
}
};