Question
Given two sorted arrays nums1
and nums2
of size m
and n
respectively.
Return the median of the two sorted arrays.
Follow up: The overall run time complexity should be O(log (m+n))
.
Example 1:
Input: nums1 = [1,3], nums2 = [2] Output: 2.00000 Explanation: merged array = [1,2,3] and median is 2.
Example 2:
Input: nums1 = [1,2], nums2 = [3,4] Output: 2.50000 Explanation: merged array = [1,2,3,4] and median is (2 + 3) / 2 = 2.5.
Example 3:
Input: nums1 = [0,0], nums2 = [0,0] Output: 0.00000
Example 4:
Input: nums1 = [], nums2 = [1] Output: 1.00000
Example 5:
Input: nums1 = [2], nums2 = [] Output: 2.00000
Constraints:
nums1,length == m
nums2,length == n
0 <= m <= 1000
0 <= n <= 1000
1 <= m + n <= 2000
My Answer
class Solution {
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
// 合并
int i = 0, j = 0;
int m = nums1.length, n = nums2.length;
int len = m + n;
int[] nums3 = new int[len];
while (i < m || j < n) {
if ((j >= n) || (i < m && nums1[i] < nums2[j])) {
nums3[i + j] = nums1[i];
i++;
} else {
nums3[i + j] = nums2[j];
j++;
}
}
// 奇数
if (len % 2 == 1) {
return nums3[(len + 1) / 2 - 1];
} else {
return (nums3[len / 2] + nums3[len / 2 - 1]) / 2.0;
}
}
}
您可以选择一种方式赞助本站
支付宝扫一扫赞助
微信钱包扫描赞助
赏