大根堆
class Solution {
public:
vector<int> getLeastNumbers_Solution(vector<int> input, int k) {
priority_queue<int> heap; // 建立一个大根堆
// 栈顶元素为最大值
for (auto x : input)
{
heap.push(x);
if (heap.size() > k) heap.pop(); //堆中数据到达k个之后,每次弹出栈顶
}
vector<int> ans;
for (int i = 0; i < k; i++) ans.push_back(heap.top()),heap.pop();
// ans保存的是降序,所以要逆置一下
reverse(ans.begin(),ans.end());
return ans;
}
};