There are two sorted arrays nums1 and nums2 of size m and n respectively.
Find themedianofthetwo sorted arrays. The overall run time complexity should be O(log (m+n)).
Example 1:
nums1 = [1, 2]nums2 = [3, 4]The median is (2 + 3)/2 = 2.5
Example 2:
nums1 = [1, 3]nums2 = [2]The median is 2.0
class Solution {
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
int len1 = nums1.size();
int len2 = nums2.size();
int len = len1+len2;
int c = 0;
if(len%2)
{
c = (len+1)/2;
}else
{
c= len/2;
}
int cen=0;
int i=0;
int j=0;
int n =1;
int c1=0;
int c2=0;
bool nnn = true;
for(;i<len1&&j<len2;)
{
if(nums1[i]<=nums2[j])
{
if(n==c)
{
c1=nums1[i];
}
if(n==c+1)
{
c2=nums1[i];
nnn = false;
break;
}
i++;
n++;
continue;
}else
{
if(n==c)
{
c1=nums2[j];
}
if(n==c+1)
{
c2=nums2[j];
nnn==false;
break;
}
j++;
n++;
continue;
}
}
for(;i<len1;i++)
{
if(n==c)
{
c1=nums1[i];
}
if(n==c+1&&nnn)
{
c2=nums1[i];
break;
}
n++;
}
for(;j<len2;j++)
{
if(n==c)
{
c1=nums2[j];
}
if(n==c+1&&nnn)
{
c2=nums2[j];
break;
}
n++;
}
if(len%2)
{
return c1;
}else
{
return (c1+c2)/2.0;
}
}
};