LeetCode-Median of Two Sorted Arrays-计算中值-有序表合并
https://oj.leetcode.com/problems/median-of-two-sorted-arrays/
合并两个有序表,MergeSort的一部分的那个算法。幸运的是stl提供了merge函数。
复习一下这个函数的签名:
merge(first1,end1,first2,end2,destFirst)
这里要注意的是需要实现分配好destFirst的空间,不然是不对的。
另外一个函数签名一样的:
set_union
这个会把重复元素除掉,需要注意。
class Solution {
public:
double findMedianSortedArrays(int A[], int m, int B[], int n) {
vector <int> c(m+n);
vector <int> a(A,A+m);
vector <int> b(B,B+n);
merge(a.begin(),a.end(),b.begin(),b.end(),c.begin());
n=m+n;
if (n%2==0){
int l=c[n/2-1];
int r=c[n/2];
return double(l+r)*0.5;
}
else{
return c[n/2];
}
}
};
浙公网安备 33010602011771号