题目描述
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
class Solution {
public:
vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
multiset<int, greater<int>> leastK;
vector<int> retvec;
if(k>input.size())
return retvec;
for(auto in:input)
{
if(leastK.size()<k)
{
leastK.insert(in);
}else
{
auto iter = leastK.begin();
if(in < *iter)
{
leastK.erase(iter);
leastK.insert(in);
}
}
}
for(auto ret: leastK)
{
retvec.push_back(ret);
}
return retvec;
}
};