LeetCode腾讯精选练习50题-- 寻找两个正序数组的中位数

一、题目

 

 二、题目解析

  本题大意为将两个数组合并,并排序,寻找中位数

  拆分:

  1、数组合并

  2、排序

  3、判断数组个数为奇或为偶

  4、根据奇偶,分别计算其中位数

三、代码

class Solution {
    public double findMedianSortedArrays(int[] nums1, int[] nums2) {
        int length1 = nums1.length;
        int length2 = nums2.length;
        int length = length1 + length2;
        int[] result = new int[length];  //新建此长度的数组
        int i = 0,j = 0;
        while(i < length1){
            result[j++] = nums1[i++];
        }
        i = 0;
        while(i < length2){
            result[j++] = nums2[i++];
        }                                    //数组合并
        Arrays.sort(result);     //数组排序

        if(length % 2 ==0){   //奇偶判断  
            return (double) ((result[length / 2] + result[length / 2 - 1]) * 1.0 / 2.0);   //输出为double类型,计算为int类型,要想有小数,必须乘1.0
        }else{
            return (double) result[length / 2];
        }
    }
}

 

posted @ 2022-09-13 11:32  [吃瓜][吃瓜]  阅读(19)  评论(0编辑  收藏  举报