您的位置:首页 > 其它

LeetCode 4 : Median of Two Sorted Arrays ---- 两排序数组的中位数

2016-05-18 16:36 357 查看
原题链接: https://leetcode.com/problems/median-of-two-sorted-arrays/
一:原题内容

There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).

二:分析理解

对于数组个数总和是偶数还是奇数,假如是偶数4和奇数5,我们要分别找到2,3和3,那么我们统一一下,找到3,把3前面的也就是2记录下来,然后判断是奇数还是偶数,进而计算。

三:AC代码

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;//记录是否到达中位数的坐标
2
while(i<size1||j<size2)
{
if((i<size1&&j==size2)||(i<size1&&j<size2&&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
{
c++;
if(c==breakPoint)
{
if(isEven)
{
ans+=nums2[j];
ans/=2.0;
}
else
ans=nums2[j];

break;
}

ans=nums2[j++];
}
}

return ans;
}
};

返回LeetCode 题解目录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: