题目:
ac代码:
class Solution {
public double findMedianSortedArrays(int[] nums1, int[] nums2) {
int len = nums1.length + nums2.length;
int[] arr = new int[len];
int index1 = 0;
int index2 = 0;
int index = 0;
while(index1 < nums1.length&&index2 < nums2.length){
if(nums1[index1]<nums2[index2])
arr[index++] = nums1[index1++];
else if(nums1[index1]>=nums2[index2])
arr[index++] = nums2[index2++];
}
while(index1 < nums1.length)
arr[index++] = nums1[index1++];
while(index2 < nums2.length)
arr[index++] = nums2[index2++];
if(len % 2 == 0)
return (double)(arr[len/2-1]+arr[len/2])/2;
else
return (double)arr[len/2];
}
}
时间复杂度:O(m+n)
算法思路:
先用归并排序将两个有序数组合并,再找中位数。