Median Of Two Sorted Arrays

Median Of Two Sorted Arrays

Given two sorted arrays nums1 and nums2 of size m and n respectively, return the median of the two sorted arrays.

The overall run time complexity should be O(log (m+n)).

Example 1:

Input: nums1 = [1,3], nums2 = [2] Output: 2.00000 Explanation: merged array = [1,2,3] and median is 2. Example 2:

Input: nums1 = [1,2], nums2 = [3,4] Output: 2.50000 Explanation: merged array = [1,2,3,4] and median is (2 + 3) / 2 = 2.5.

In this problem we know that median is the middle element in odd number of number and in even middle and its previous divided by 2 so for that we only have to merge the arrays by using merge stl straight forward approach.

class Solution {
public:
    double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
        int m=nums1.size();
        int n=nums2.size();
        vector<int> num(m+n);
        merge(nums1.begin(),nums1.end(),nums2.begin(),nums2.end(),num.begin());
        int sum=m+n;
        if(sum%2==0)
        {
            return (double)(num[(sum-1)/2]+num[sum/2])/2;
        }
        else
            return (double)num[sum/2];

    }
};