最小的K个数(C++牛客网)
解题思路:
(1)使用优先队列,priority_queue
class Solution {
public:
vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
vector<int> v;
priority_queue<int,vector<int>,less<int>> pq;
if(k>input.size() || k==0) return v;
for(int i=0;i<input.size();i++) {
if(pq.empty()) pq.push(input[i]);
else if(pq.size()<k) pq.push(input[i]);
else {
pq.push(input[i]);
pq.pop();
}
}
while(!pq.empty()) {
v.push_back(pq.top());
pq.pop();
}
return v;
}
};
还没有评论,来说两句吧...