版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhuizhuzijidemenglsy/article/details/83443437
vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
int len=input.size();
vector<int> vec;
if(len<k||len<=0)
return vec;
sort(input.begin(),input.end());
for(int i=0;i<k;i++)
{
vec.push_back(input[i]);
}
return vec;
}
vector<int> GetLeastNumbers_Solution(vector<int> input, int k)
{
int len=input.size();
vector<int> res;
if(len<=0||k>len||k<=0)
return res;
for(int i=0;i<k;i++)
res.push_back(input[i]);
//建堆
make_heap(res.begin(),res.end());
for(int i=k;i<len;i++)
{
if(input[i]<res[0])
{
//先pop,然后在容器中删除
pop_heap(res.begin(),res.end());
res.pop_back();
//先在容器中加入,再push
res.push_back(input[i]);
push_heap(res.begin(),res.end());
}
}
return res;
}