多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > Median of Two Sorted Arrays

Median of Two Sorted Arrays

來源:程序員人生   發布時間:2014-11-03 08:23:24 閱讀次數:2683次

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)).

題意:尋覓兩個有序數組的中位數,要求復雜度為O(log (m+n)).
思路:問題本質其實就是求兩個有序數組的第Kth的數,那末我們可以這樣斟酌,分別求出a,b兩個數組中第k/2th的數,這兩個數有3種情況

          當a[k/2]<b[k/2]時,那末原kth數肯定不在a[k/2]之前的數內,然后拋棄a[k/2]之前的所有數,再在剩余的數里求k-(k/2)th數,其余兩種情況同理,遞歸2分,所以復雜度降到對數級別


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⑴]; if(k==1) return min(a[0],b[0]); int pa=min(k/2,m),pb=k-pa; if(a[pa⑴]<b[pb⑴]) return find_kth(a+pa,m-pa,b,n,k-pa); else if(a[pa⑴]>b[pb⑴]) return find_kth(a,m,b+pb,n-pb,k-pb); else return a[pa⑴]; } class Solution { public: double findMedianSortedArrays(int A[], int m, int B[], int n) { int sum=m+n; if(sum%2){ return find_kth(A,m,B,n,sum/2+1); } else return (find_kth(A,m,B,n,sum/2)+find_kth(A,m,B,n,sum/2+1))/2; } };


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日韩欧美视频 | 久久久www成人免费精品 | 欧美亚洲国产精品 | 亚洲a成人 | 亚洲精品自拍视频 | 一本本久综合久久爱 | 国产午夜精品久久久久 | 国产成+人+综合+亚洲不卡 | 亚洲黄色a| 欧美一级欧美一级毛片 | 日韩欧美极品 | 秋霞网站一级一片 | 牛站一级欧美大片 | 18videosex性欧美黑色 | 亚洲乱码中文字幕 | 欧美一级视频免费观看 | 国产午夜精品理论片久久影视 | 色综合美国色农夫网 | free性欧美18一19hd | 欧美精品亚洲精品日韩1818 | a一级毛片视频免费看 | 一级毛片一级毛片 | 欧美肥老太 | 在线亚洲精品自拍 | 精品无码久久久久久国产 | 98国内自拍在线视频 | 久久精品久久精品国产大片 | 精品国产日韩亚洲一区在线 | 999精品视频在线观看 | 国产一区二区精品久久91 | 午夜dj在线观看免费视频www | 黄色免费在线网站 | 成人亚洲视频 | 亚洲成人资源 | 成人午夜免费在线观看 | 欧美色图一区 | 亚洲成人影院在线 | 日韩成a人片在线观看日本 日韩成人国产精品视频 | 黄色网址亚洲 | 欧美国产高清 | 一区二区三区欧美日韩国产 |