解题思路:
两个数组合并,然后根据奇偶返回中位数。
java
class Solution {
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
int m = nums1.length;
int n = nums2.length;
int[] nums = new int[m + n];
if (m == 0) {
if (n % 2 == 0) return (nums2[n / 2 - 1] + nums2[n / 2]) / 2.0;
else return nums2[n / 2];
}
if (n == 0) {
if (m % 2 == 0) return (nums1[m / 2 - 1] + nums1[m / 2]) / 2.0;
else return nums1[m / 2];
}
int cnt = 0;
int i = 0, j = 0;
while (cnt != (m + n)) {
if (nums1[i] < nums2[j]) nums[cnt++] = nums1[i++];
else nums[cnt++] = nums2[j++];
if (i == m) {
while (j != n)
nums[cnt++] = nums2[j++];
}
if (j == n) {
while (i != m)
nums[cnt++] = nums1[i++];
}
}
if (cnt % 2 == 0) return (nums[cnt / 2 - 1] + nums[cnt / 2]) / 2.0;
else return nums[cnt / 2];
}
}