两个有序数组的中位数
public class Solution {
public static void main(String[] args) {
int[] nums1 = {1, 2, 3, 4, 5, 6,11};
int[] nums2 = {2, 3, 10,12,13};
double result = findMedianSortedArrays(nums1, nums2);
System.out.println("中位数"+result);
}
public static double findMedianSortedArrays(int[] nums1, int[] nums2) {
int m = nums1.length, n = nums2.length;
int count1 = 0;
int count2 = 0;
int[] nums = new int[n+m];
for (int i = 0; i < m+n; i++) {
if(nums1[count1] <= nums2[count2]) {
nums[i] = nums1[count1];
count1++;
if (count1 == m) {
break;
}
}else {
nums[i] = nums2[count2];
count2++;
if (count2 == n) {
break;
}
}
}
if(count1 == m) {
for (int k = count1+count2; k < m+n; k++) {
nums[k] = nums2[count2];
count2++;
}
}
if (count2 == n) {
for (int k = count2+count1; k < m+n; k++) {
nums[k] = nums1[count1];
count1++;
}
}
if((n+m)%2 != 0) {
return nums[(m+n)/2];
}else {
return ((double)nums[(m+n)/2] + (double)nums[((m+n)/2)-1])/2;
}
}
}