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
class Solution {
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
int total = nums1.size() + nums2.size();
vector<int> combine;
int index1 = 0;
int index2 = 0;
for (int i = 0; i < total; i++) {
if (index1 == nums1.size()) {
combine.push_back(nums2[index2]);
index2++;
} else if (index2 == nums2.size()) {
combine.push_back(nums1[index1]);
index1++;
} else {
if (nums1[index1] < nums2[index2]) {
combine.push_back(nums1[index1]);
index1++;
} else {
combine.push_back(nums2[index2]);
index2++;
}
}
}
if (combine.size() % 2 == 1) {
return combine[int(total/2)];
} else {
return (double)(combine[int(total/2)] + combine[int(total/2) - 1]) / 2;
}
}
};