LeetCode:4.寻找两个正序数组中的中位数(median-of-two-sorted-arrays)
包含输入的完整代码LeetCode:4.寻找两个正序数组中的中位数(median-of-two-sorted-arrays)Java完整代码
问题描述
思路
方法一
刚看到这题的时候,想也没想,直接暴力,先合并两个数组,然后排序,再输出中位数。
整个过程无非就是注意一下几点:
- 如果有一个数组为空怎么办。
- 合并后数组长度是奇数还是偶数,在这两种情况下中位数的求法会有所差异。
于是我们啪啪啪,行云流水,很快啊,就AC了。
代码如下:
class Solution {
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
int[] nums;
int m = nums1.length;
int n = nums2.length;
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 count = 0;
int i = 0, j = 0;
while (count != (m + n)) {
if (i == m) {
while (j != n) {
nums[count++] = nums2[j++];
}
break;
}
if (j == n) {
while (i != m) {
nums[count++] = nums1[i++];
}
break;
}
if (nums1[i] < nums2[j