题目描述
输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。
先设置一个数组将新数组存放k个数,然后排序,最大值与原数剩余的比较,大了 删除插入新的,小了不变,还可以选择用multiset<int,greater <int>>这个是自动排序的
class Solution {
public:vector<int> GetLeastNumbers_Solution(vector<int> input, int k)
{
vector<int> ans;
int len=input.size();
if(k<1||len<k) return ans;
for(int i=0;i<len;i++)
{
if(ans.size()<k)
{
ans.push_back(input[i]);
if(ans.size()==k)
sort(ans.begin(),ans.end());
}
else{
if(ans[k-1]>input[i])
{
ans[k-1]=input[i];
sort(ans.begin(),ans.end());
}
}
}
return ans;
}
};