您的位置:首页 > 其它

Median of Two Sorted Arrays 两个数组的中位数

2014-01-18 21:48 288 查看
class Solution {

public:

double find_kth(int A[],int m,int B[],int n, int k)

{

if(m>n) return find_kth(B,n,A,m,k);

if(m==0) return B[k-1];

if(k==1) return min(A[0],B[0]);

int pa=min(m,k/2);

int pb=k-pa;

if(A[pa-1]<B[pb-1])

return find_kth(A+pa,m-pa,B,n,k-pa);

else if (A[pa-1]>B[pb-1])

return find_kth(A,m,B+pb,n-pb,k-pb);

else

return A[pa-1];

}

double findMedianSortedArrays(int A[], int m, int B[], int n)

{

// IMPORTANT: Please reset any member data you declared, as

// the same Solution instance will be reused for each test case.

int total=m+n;

if(total%2==1)

return find_kth(A,m,B,n,total/2+1);

else

return (find_kth(A,m,B,n,total/2)+find_kth(A,m,B,n,total/2+1))/2;

}

};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐