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]; } } };