题解 | #最小的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; } };