寻找两个有序数组的中位数
示例 1:
nums1 = [1, 3]
nums2 = [2]则中位数是 2.0
示例 2:
nums1 = [1, 2]
nums2 = [3, 4]则中位数是 (2 + 3)/2 = 2.5
int n1 = nums1.size(), n2 = nums2.size();
int mid = (n1 + n2 - 1) / 2;
double mid_num;
int i = 0, j = 0, k = 0;
while(j < n1 || k < n2) {
if(j < n1 && k < n2) {
nums1[j] > nums2[k] ? mid_num = nums2[k++] : mid_num = nums1[j++];
}else if(j < n1) {
mid_num = nums1[j++];
}else if(k < n2){
mid_num = nums2[k++];
}
if(i == mid) {
break;
}
i++;
}
if((n1 + n2) % 2 == 0) {
if(j < n1 && k < n2) {
nums1[j] > nums2[k] ? mid_num = (nums2[k] + mid_num) / 2: mid_num = (nums1[j] + mid_num) / 2;
}else if(j < n1) {
mid_num = (nums1[j++] + mid_num) / 2;
}else if(k < n2){
mid_num = (nums2[k++] + mid_num) / 2;
}
}
return mid_num;
传送门-https://leetcode-cn.com/problems/median-of-two-sorted-arrays