4. Median of Two Sorted Arrays

来源:互联网 发布:bytefence是什么软件 编辑:程序博客网 时间:2024/04/29 16:36
class Solution {public:    double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {        int n = nums1.size() + nums2.size(), i = 0, j = 0;        while(i+j != (n-1)/2 && i < nums1.size() && j < nums2.size())        {            if(nums1[i] < nums2[j])            i++;            else            j++;        }        if(i+j != (n-1)/2 ||i == nums1.size() || j == nums2.size())        {            if(i == nums1.size())            {                while(i+j != (n-1)/2)                j++;                return n%2 == 0 ? double(nums2[j]+nums2[j+1])/2 : nums2[j];            }            else            {                while(i+j != (n-1)/2)                i++;                return n%2 == 0 ? double(nums1[i]+nums1[i+1])/2 : nums1[i];            }        }        if(n%2 == 1)        return min(nums1[i], nums2[j]);        else        return double(((j+1) < nums2.size() ? min(nums2[j+1],nums1[i]) : nums1[i]) + ((i+1) < nums1.size() ? min(nums2[j],nums1[i+1]) : nums2[j]))/2;    }};

0 0
原创粉丝点击