(1)排序,记录中间两个数
class Solution {
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
int start=0,end=0,count=0;
int m=nums1.size(),n=nums2.size();
int mid=(m+n)/2;
int i=0,j=0,tag=0;
while(i<m && j<n) {
if(nums1[i]<=nums2[j]) {
count++;
if(count==mid) {
start=nums1[i];
}
if(count==mid+1) {
end=nums1[i];
tag=1;
break;
}
i++;
} else {
count++;
if(count==mid) {
start=nums2[j];
}
if(count==mid+1) {
end=nums2[j];
tag=1;
break;
}
j++;
}
}
if(tag==1) {
if((m+n)%2==0) return ((double)start+end)/2;
else return (double)end;
} else {
while(i<m) {
count++;
if(count==mid) {
start=nums1[i];
}
if(count==mid+1) {
end=nums1[i];
tag=1;
break;
}
i++;
}
if(tag==1) {
if((m+n)%2==0) return ((double)start+end)/2;
else return (double)end;
} else {
while(j<n) {
count++;
if(count==mid) {
start=nums2[j];
}
if(count==mid+1) {
end=nums2[j];
tag=1;
break;
}
j++;
}
}
}
if((m+n)%2==0) return ((double)start+end)/2;
else return (double)end;
}
};