题解 | #最小的K个数#
最小的K个数
https://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf
class Solution {
public:
vector<int> GetLeastNumbers_Solution(vector<int>& input, int k)
{
vector<int> vt_res;
if (k == 0 || input.empty())
{
return vt_res;
}
map<int, int> map_tmp; //值->次数
for(int i = 0; i < input.size(); i++)
{
auto it = map_tmp.find(input[i]);
if (it == map_tmp.end())
{
map_tmp[input[i]] = 1;
}else
{
it->second++;
}
}
auto it = map_tmp.begin();
while (vt_res.size() < k)
{
if (it == map_tmp.end())
{
break;
}
for(int i = 0; (i < it->second) && (vt_res.size() < k); i++)
{
vt_res.push_back(it->first);
}
it++;
}
return vt_res;
}
};
查看3道真题和解析
