4. Median of Two Sorted Arrays

来源:互联网 发布:东北大学软件工程硕士 编辑:程序博客网 时间:2024/06/05 23:07

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)).

Example 1:

nums1 = [1, 3]
nums2 = [2]

The median is 2.0

Example 2:

nums1 = [1, 2]
nums2 = [3, 4]

The median is (2 + 3)/2 = 2.5

class Solution {public:    double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2)     {        int size= (nums1.size() + nums2.size());        int mid = size >> 1;        vector<int>a;        vector<int> it1(begin(nums1), end(nums1));        vector<int> it2(begin(nums2), end(nums2));        for (decltype(it1.size()) i = 0, j = 0; (i < it1.size()) || (j < it2.size());)        {            if ((i < it1.size()) && (!(j < it2.size()) || (nums1[i] <= nums2[j])))                  a.push_back(nums1[i++]);            if ((j < it2.size()) && (!(i < it1.size()) || (nums1[i] > nums2[j])))                   a.push_back(nums2[j++]);        }        if ((size) % 2 != 0)            return a[mid];        else            return (a[mid-1] + a[mid]) / 2.0;    }};
原创粉丝点击