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

You may assume nums1 and nums2 cannot be both empty.

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

my code:

class Solution {
public:
    double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
        vector<int> v;
        int num = 0;
        for (int i = 0; i < nums1.size(); ++i) {
            v.push_back(nums1[i]);
            num++;
        }
        for (int i = 0; i < nums2.size(); ++i) {
            v.push_back(nums2[i]);
            num++;
        }
        sort(v.begin(), v.end());
        if (num % 2 == 0) {
            int mid = num / 2;
            double ans = 1.0*(v[mid] + v[mid-1])/2;
            return ans;
        } else {
            int mid = num / 2;
            double ans = 1.0*v[mid];
            return ans;
        }
    }
};

 

Runtime: 44 ms, faster than 51.19% of C++ online submissions for Median of Two Sorted Arrays.

 

posted @ 2018-09-27 17:18  Veritas_des_Liberty  阅读(147)  评论(0编辑  收藏  举报