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.

永远渴望,大智若愚(stay hungry, stay foolish)
原文地址:https://www.cnblogs.com/h-hkai/p/9714338.html