知识点:
c++优先队列(priority_queue)用法详解
push 插入元素到队尾 (并排序)
priority_queue的常见用法
priority_queue队列优先级的设置
基本数据类型优先级的设置
对于基础类型,一般是数字大的优先级高,对于字符,就是字典序越大,优先级越高。
priority_queue<int> q; priority_queue<int,vector<int>,less<int>>;
两种定义方式等价
- vector是承载堆的容器
- less是比较类,less表示数字大优先级大,greater表示数字大,优先级小
思路

代码
class Solution {
public:
vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
vector<int> res;
priority_queue<int> heap;
if(input.size()==0||k==0||k>input.size()) return res;
//if(input.size() < k || k <= 0) return res;
for(auto x : input)
{
heap.push(x);
if(heap.size() > k) heap.pop();
}
while(heap.size())
{
res.push_back(heap.top());
heap.pop();
}
reverse(res.begin(),res.end());
return res;
}
};
来源:https://www.cnblogs.com/make-big-money/p/12317994.html
