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];
}
};