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