class Solution
{
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2)
{
double ans;
int size1=nums1.size();
int size2=nums2.size();
bool isEven=((size1+size2)%2==0)?true:false;//标记是否是偶数
int breakPoint=(size1+size2)/2+1;//结束位置
int i=0;
int j=0;
int c=0;//记录是否到达中位数的坐标
while(i<size1||j<size2)
{
if((i<size1&&j==size2)||(i<size1&&j<size2&&nums1[i]<=nums2[j]))//判断条件要么数列2已经走完,要么nums1[i]<nums2[j]
{
c++;
if(c==breakPoint) //判断是否走到中点
{
if(isEven)//是偶数
{
ans+=nums1[i];
ans/=2.0;
}
else
ans=nums1[i];
break;
}
ans=nums1[i++]; //记录前一个值
}
else //否则在数组2中同1类似操作
{
c++;
if(c==breakPoint)
{
if(isEven)
{
ans+=nums2[j];
ans/=2.0;
}
else
ans=nums2[j];
break;
}
ans=nums2[j++];
}
}
return ans;
}
};
leetcode 两有序数列连接求中值
最新推荐文章于 2022-04-05 15:30:19 发布