题目描述
引入状态数组state,标记最小值是否输出过,循环4次选出4个最小值。
用新的vector承载选出的最小值,时间复杂度为O(n)
C++ 代码
vector<int> getLeastNumbers_Solution(vector<int> input, int k) {
vector<int> m;
vector<bool> state;
for(int i=0;i<input.size();i++)
{
state.push_back(false);
}
int min=10000;
int j;
for(int t=0;t<k;t++)
{
for(int i=0;i<input.size();i++)
{
if(input[i]<=min&&state[i]==false)
{
min=input[i];
j=i;
}
}
state[j]=true;
m.push_back(min);
min=10000;
}
return m;
}