最小的K个数

注意写法必须先后在前,不然不对。

 public ArrayList<Integer> GetLeastNumbers_Solution(int [] input, int k) {

        if(k==0) return new ArrayList<Integer>();
        quicksort(input,0,input.length-1);
        ArrayList<Integer> list=new ArrayList<Integer>();
        for (int i=0;i<k;i++){
            list.add(input[i]);
        }
        return list;
    }
    public void quicksort(int[] nums,int l,int r){
        if(l>r) return;
        int i=l,j=r;
        int pivot=nums[l];
        while (i<j){
            while (i<j&&nums[j]>=pivot) j--;
            while (i<j&&nums[i]<=pivot) i++;
            if(i<j) {
                int temp = nums[i];
                nums[i] = nums[j];
                nums[j] = temp;
            }
        }
        nums[l]=nums[i];
        nums[i]=pivot;
        quicksort(nums,l,i-1);
        quicksort(nums,i+1,r);

    }




全部评论

相关推荐

06-07 21:26
江南大学 C++
话不多说,直接上时间线和图片1.2024年10月底发offer,并签三方2.2025年5月底公司违约
从零开始的转码生活:希望所有签了三方但直接违约的公司都倒闭!都倒闭!都倒闭!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务