Median of Two Sorted Arrays接着上篇,个人觉得先排序在查找大家都好理解,代码很简单,时间复杂度O(m+n),复杂度和一般的递归算法一样,递归的思路大家也可以去找找。方面大家理解,放上排序之后查找的代码,本人验证能OJ过。
__author__yaojianpeng
//C/C++解法
class Solution {
public:
double findMedianSortedArrays(vector<int>& nums1, vector<int>& nums2) {
vector<int> C;
int pa = 0, pb = 0; // point of A & B
int m=nums1.size(),n=nums2.size();
while (pa < m || pb < n) {
if (pa == m) {
C.push_back(nums2[pb++]);
continue;
}
if (pb == n) {
C.push_back(nums1[pa++]);
continue;
}
if (nums1[pa] > nums2[pb])
C.push_back(nums2[pb++]);
else
C.push_back(nums1[pa++]);
}
if ((n + m)&1)
return C[(n+m)/2];
else
return (C[(n+m)/2 - 1] + C[(n+m)/2]) / 2.0;
}
};