Use the idea of merge sort.
class Solution {
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
int m=nums1.size();
int n=nums2.size();
int i=0,j=0,curr=1;
double res1,res2;
while(i<m&&j<n)
{
if(curr==(m+n)/2)
res1=min(nums1[i],nums2[j]);
if(curr==(m+n)/2+1)
{
res2=min(nums1[i],nums2[j]);
break;
}
if(nums1[i]<=nums2[j])
i++;
else
j++;
curr++;
}
while(curr<=(m+n)/2+1)
{
if(curr==(m+n)/2)
{
if(i==m)
res1=nums2[j];
else if(j==n)
res1=nums1[i];
}
if(curr==(m+n)/2+1)
{
if(i==m)
res2=nums2[j];
else if(j==n)
res2=nums1[i];
}
if(i<m)
i++;
else if(j<n)
j++;
curr++;
}
if((m+n)%2)
return res2;
return (res1+res2)/2;
}
};