两个排序的数组A和B分别含有m和n个数,找到两个排序数组的中位数,要求时间复杂度应为O(log (m+n))。
给出数组A = [1,2,3,4,5,6] B = [2,3,4,5],中位数3.5
给出数组A = [1,2,3] B = [4,5],中位数 3
class Solution {
public:
/*
* @param A: An integer array
* @param B: An integer array
* @return: a double whose format is *.5 or *.0
*/
double findMedianSortedArrays(vector<int> &A, vector<int> &B) {
// write your code here
for(int i=0;i<B.size();i++){
A.push_back(B[i]);//将B数组中的元素给A;
}
sort(A.begin(), A.end());//对A数组进行排序
double m,n;
if(A.size()%2==0){//偶数个元素时
m=A[A.size()/2];
n=A[(A.size()/2)-1];
return (m+n)/2.0;
}else{//奇数个元素时
return A[A.size()/2];
}
}
};