栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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;
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/717947.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号