相当迷惑的题试了一下sort就过了qwq
class Solution {
public:
vector<int> getLeastNumbers_Solution(vector<int> input, int k) {
sort(input.begin(), input.end());
vector<int> res;
for(int i = 0; i < k; i++) {
res.push_back(input[i]);
}
return res;
}
};
参考y总是priority写法
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(); // 弹出堆顶最大的元素
}
}
vector<int> res;
while (heap.size()){
res.push_back(heap.top());
heap.pop();
}
reverse(res.begin(), res.end());
return res;
}
};