题解 | #最小的K个数#

最小的K个数

http://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf

class Solution {
public:
    vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {
        if(input.size()<=k) return input;
        return qsort(input, k,0, input.size()-1);
    }
    vector<int> qsort(vector<int>& input,int k,int l,int r){
        int i = l,j = r;
        while(i<j){
            while(i<j && input[j]>=input[l]) j--;
            while(i<j && input[i]<=input[l]) i++;
            swap(input[i],input[j]);
        }
        swap(input[i],input[l]);
        if(i>k) qsort(input, k, l, i-1);
        if(i<k) qsort(input, k, i+1, r);
        vector<int> res;
        res.assign(input.begin(),input.begin()+k);
        return res;
    }
};
全部评论

相关推荐

点赞 评论 收藏
分享
头像
昨天 14:28
长沙理工大学
刷算法真的是提升代码能力最快的方法吗?&nbsp;刷算法真的是提升代码能力最快的方法吗?
牛牛不会牛泪:看你想提升什么,代码能力太宽泛了,是想提升算法能力还是工程能力? 工程能力做项目找实习,算法也分数据结构算法题和深度学习之类算法
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务