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

全部评论

相关推荐

内向的柠檬精在研究求职打法:你们广东工业大学为啥这么多字节,好吓人,还有那个东北大学,重庆邮电,太哈人了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务