给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。
示例 1:
输入:nums1 = [1,3], nums2 = [2]
输出:2.00000
解释:合并数组 = [1,2,3] ,中位数 2
该种思路为:合并并排序数组,取中位数
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
int index = 0;
int t1 = 0;
int t2 = 0;
int[] result = new int[nums1.length + nums2.length];
while (index < result.length) {
if (t1 == nums1.length) {
result[index++] = nums2[t2++];
continue;
} else if (t2 == nums2.length) {
result[index++] = nums1[t1++];
continue;
}
if (nums1[t1] > nums2[t2]) {
result[index++] = nums2[t2++];
} else {
result[index++] = nums1[t1++];
}
}
if (result.length % 2 == 0) {
return (double) (result[result.length/2] + result[result.length/2-1]) / 2;
} else {
return result[result.length/2];
}
}