leetcode 4. 寻找两个正序数组的中位数
O(m + n)时间复杂度。
class Solution {
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
vector<int> v;
int i = 0,j = 0,l1 = nums1.size(),l2 = nums2.size();
while(i < l1 && j < l2)
if(nums1[i] < nums2[j])
v.push_back(nums1[i]),++i;
else
v.push_back(nums2[j]),++j;
if(i == l1)
while(j < l2)
v.push_back(nums2[j]),++j;
else
while(i < l1)
v.push_back(nums1[i]),++i;
if((l1 + l2) % 2)
return v[(l1 + l2) / 2];
else
return (v[(l1 + l2) / 2] + v[(l1 + l2) / 2 - 1]) / 2.0;
}
};