[LeetCode]Median of Two Sorted Arrays
来源:互联网 发布:心的距离 知乎 编辑:程序博客网 时间:2024/05/01 05:29
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)).
参考:http://fisherlei.blogspot.com/2012/12/leetcode-median-of-two-sorted-arrays.html
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 if((m+n)%2==1) { return getKth(A,0,m,B,0,n,(m+n)/2+1); } else { double med1=getKth(A,0,m,B,0,n,(m+n)/2); double med2=getKth(A,0,m,B,0,n,(m+n)/2+1); return (med1+med2)/2; } } double getKth(int A[],int starta,int sizea, int B[], int startb,int sizeb, int k) { assert(A&&B); //here k is not index, but the k-th element if(sizea<=0) return B[startb+k-1]; if(sizeb<=0) return A[starta+k-1]; if(k<=1) return min(A[starta],B[startb]); int meda=sizea/2+1; int medb=sizeb/2+1; int med=sizea/2+sizeb/2+1; if(A[starta+meda-1]>=B[startb+medb-1]) { if(k>med) return getKth(A,starta,sizea,B,startb+medb,sizeb-medb,k-medb); else return getKth(A,starta,meda-1,B,startb,sizeb,k); } else{ if(k>med) return getKth(A,starta+meda,sizea-meda,B,startb,sizeb,k-meda); else return getKth(A,starta,sizea,B,startb,medb-1,k); } }};
- LeetCode: Median of Two Sorted Arrays
- LeetCode Median of Two Sorted Arrays
- leetcode 26: Median of Two Sorted Arrays
- Leetcode 4 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
- [LeetCode] Median of Two Sorted Arrays
- [leetcode] Median of Two Sorted Arrays
- leetcode-004: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
- hdu2147 kiki's game
- C#的continue
- hdu 4756 Install Air Conditioning
- utf-8和ANSI
- 17th Training
- [LeetCode]Median of Two Sorted Arrays
- zoj 3547 The Boss on Mars
- 我的人生应该踏实一点
- QWidget之Alien与Native小记
- sphinx
- CSS 选择器
- 流媒体协议介绍(rtp/rtcp/rtsp/rtmp/mms/hls)
- [笔记]eclipse中批量修改Java类文件中引入的package包路径 - [工具使用]
- hdu 4640 Island and study-sister