LeetCode 题解4 寻找两个正序数组中的中位数 解法1
好了这道题的 示例和题解不是一回事
所以看了好久 才理解题解是什么意思
按照示例的显示题解 只有一种思路
判断 两组序列长度总和的奇偶性
如果为偶数就是求 len/2 与(len/2)-1 的均值
如果为奇数 是求 len/2 下标处的 值
只考虑解法的话 合并两个序列然后排序是最简单了
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
int m = nums1.length;
int n = nums2.length;
int mn = m+n;
int [] arr = new int[mn];
int m1 = 0 ,n1 = 0;
while(m1<m){
arr[m1] = nums1[m1++];
}
while(n1<n){
arr[n1+m1] = nums2[n1++];
}
Arrays.sort(arr);
//浮点数需要浮点数参与
double mod = 2.0;
if(mn%2==0){
return (arr[mn/2]+arr[(mn/2)-1])/mod;
}else{
return arr[(mn/2)];
}
}

浙公网安备 33010602011771号