首页 > 其他 > 详细

LeetCode215-kth-largest-element-in-an-array

时间:2019-11-03 22:28:58      阅读:86      评论:0      收藏:0      [点我收藏+]

第k 大的元素

这题用递归出错了,划不来,一点都不好debug

class Solution {
    public int findKthLargest(int[] nums, int k) {
        
        mergeSort(nums, 0, nums.length-1);
        int count = nums.length;
        return nums[count-k];
        
    }
      static public void mergeSort(int[] num, int left, int right){
        if(left<right) {
            int mid = (left + right) / 2;
            mergeSort(num,left,mid);
            mergeSort(num, mid + 1, right);
            mergeSort(num, left, mid, right);
        }

    }

    static public void mergeSort(int[] num, int left, int mid, int right){
        int[] sort = new int[num.length];

        int counter = left;
        int i = left;
        int j = mid+1;
        while(i <= mid && j <= right){

            if(num[i]>=num[j]){
                sort[counter] = num[j];
                j++;
            }else{
                sort[counter] = num[i];
                i++;
            }
            counter++;
        }
        while(i <= mid){
            sort[counter++] = num[i++];
        }
        while(j <= right){
            sort[counter++] = num[j++];
        }

        for(int k=left;k<=right;k++){
            num[k] = sort[k];
        }

    }

}

  

LeetCode215-kth-largest-element-in-an-array

原文:https://www.cnblogs.com/Jomini/p/11788791.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!