[leetcode] Median of Two Sorted Arrays
2013-08-16 22:32
495 查看
There are two sorted arrays A and B of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should
be O(log (m+n)).
class Solution {
public:
double findMedianSortedArrays(int A[], int m, int B[], int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
double midA,midB;
midA=FindKth(A,0,m,B,0,n,(m+n)/2+1);
if((m+n)%2==0)
midB=FindKth(A,0,m,B,0,n,(m+n)/2);
else
midB=midA;
return (midA+midB)/2;
}
int FindKth(int A[], int aoffset,int m , int B[], int boffset, int n, int k){
if(m>n)
return FindKth(B,boffset,n,A,aoffset,m,k);//巧妙的解决一个选择最长的那个数组的问题
if(m==0) return B[k-1];
if(k==1) return min(A[aoffset],B[boffset]);
int pa=min(k/2,m);
int pb=k-pa;
if(A[pa+aoffset-1]<B[pb+boffset-1])
return FindKth(A,aoffset+pa,m-pa,B,boffset,n,k-pa);
return FindKth(A,aoffset,m,B,boffset+pb,n-pb,k-pb);
}
};
be O(log (m+n)).
class Solution {
public:
double findMedianSortedArrays(int A[], int m, int B[], int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
double midA,midB;
midA=FindKth(A,0,m,B,0,n,(m+n)/2+1);
if((m+n)%2==0)
midB=FindKth(A,0,m,B,0,n,(m+n)/2);
else
midB=midA;
return (midA+midB)/2;
}
int FindKth(int A[], int aoffset,int m , int B[], int boffset, int n, int k){
if(m>n)
return FindKth(B,boffset,n,A,aoffset,m,k);//巧妙的解决一个选择最长的那个数组的问题
if(m==0) return B[k-1];
if(k==1) return min(A[aoffset],B[boffset]);
int pa=min(k/2,m);
int pb=k-pa;
if(A[pa+aoffset-1]<B[pb+boffset-1])
return FindKth(A,aoffset+pa,m-pa,B,boffset,n,k-pa);
return FindKth(A,aoffset,m,B,boffset+pb,n-pb,k-pb);
}
};
相关文章推荐
- leetCode 4. Median of Two Sorted Arrays
- LeetCode Median of Two Sorted Arrays
- leetcode Median of Two Sorted Arrays
- leetcode Median of Two Sorted Arrays
- LeetCode 4 - Median of Two Sorted Arrays
- LeetCode2:Median of Two Sorted Arrays
- [LeetCode] Median of Two Sorted Arrays 两个排序数组的中位数
- (LeetCode)Median of Two Sorted Arrays
- [LeetCode] Median of Two Sorted Arrays
- [leetcode]Median of Two Sorted Arrays
- leetcode 练习题 -- 4. Median of Two Sorted Arrays
- LeetCode 之 Median of Two Sorted Arrays
- Leetcode--Median of Two Sorted Arrays
- [LeetCode]Median of Two Sorted Arrays
- leetcode Median of Two Sorted Arrays(Java)
- LeetCode(4)——Median of Two Sorted Arrays
- LeetCode 004 Median of Two Sorted Arrays *
- LeetCode:Median of Two Sorted Arrays
- LeetCode 4: Median of Two Sorted Arrays
- LeetCode-Median of Two Sorted Arrays