leetcode 寻找两个正序数组的中位数

leetcode 寻找两个正序数组的中位数,第1张

leetcode 寻找两个正序数组的中位数

leetcode 寻找两个正序数组的中位数

 		采用归并排序的思想
class Solution {
    public double findMedianSortedArrays(int[] nums1, int[] nums2) {
           int[] result =  merger(nums1,nums2);
           int length = result.length;
           //为偶数时返回前一个数和后一个数
           if( length% 2 ==0)
                return (result[length/2]+result[length/2-1])/2.0;
                //为奇数直接返回
            return result[length/2]/1.0;
    }
    	//归并排序思想
      public int[] merger(int[] nums1,int [] nums2){
        int n =nums1.length;  
        int m =nums2.length;
        if(n==0 && m!=0)
            return nums2;
        if(n!=0 && m==0)
            return nums1;
        int[] temp  = new int[m+n];
        int k =  0;
        int l =0;
        int r =0;
        //从小到大排序
            while(l<=n-1 && r<=m-1){
                int result = nums1[l]<=nums2[r]?nums1[l++]:nums2[r++];
                temp[k++] = result;
            }
            //左组若没有放完,则左组剩下的全大于右组,直接放最后面
            while(l<=n-1){
                temp[k++] = nums1[l++];
            }
            //同理
            while(r<=m-1)
                temp[k++] = nums2[r++];
        //返回生成的新数组
        return temp;
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5714266.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存