一、思路:
要求時間複雜度爲O(M+N),採用雙指針法,將兩個有序數組歸併到另一個數組裏,返回新數組的中位數。
二、代碼(C++):
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
vector<int> merge; //新數組
int i = 0, j = 0; //雙指針
double res=0.0;
while (i != nums1.size() && j != nums2.size()) //歸併過程
{
if (nums1[i] <= nums2[j])
merge.push_back(nums1[i++]);
else
merge.push_back(nums2[j++]);
}
while (i != nums1.size())
merge.push_back(nums1[i++]);
while (j != nums2.size())
merge.push_back(nums2[j++]);
if (merge.size() % 2 == 1)
return merge[merge.size() / 2];
res = merge[merge.size() / 2] + merge[merge.size() / 2 - 1];
return res/2;
}