题目
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数。
链接
https://leetcode-cn.com/problems/median-of-two-sorted-arrays/
代码
/**
* 04寻找两个正序数组的中位数
* 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。
* 输入:nums1 = [1,3], nums2 = [2]
* 输出:2.00000
* 解释:合并数组 = [1,2,3] ,中位数 2
*/
@Test
public void test4(){
int[] nums1= {1,2,3};
int[] nums2= {4,5,6};
double medianSortedArrays = findMedianSortedArrays(nums1, nums2);
System.out.println(medianSortedArrays);
}
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
//合并两个数组
int[] newArray = Arrays.copyOf(nums1,nums1.length+nums2.length);
for (int i = 0; i < nums2.length; i++) {
newArray[nums1.length+i]=nums2[i];
}
//排序
Arrays.sort(newArray);
if(newArray.length ==0){
return Double.valueOf(0);
}else if(newArray.length ==1){
return newArray[0];
}else if(newArray.length % 2 ==1){
return Double.valueOf(newArray[newArray.length/2]);
}else {
return Double.valueOf((newArray[newArray.length/2 ] + newArray[newArray.length/2 -1]) /2.0);
}
}