有兩個長度分別為n和m的有序陣列,計算這2個陣列中所有元素的中位數。
如果元素個數為偶數,那麼中位數為中間2個元素之和除以2(向下取整)。
樣例1:
arr1: [1, 4, 5]樣例2:arr2: [2, 3]
應該返回3。
arr1: [1, 7, 8]提示:1. 使用o(log(m+n))的演算法; 2. 嘗試多種方法。arr2: [2, 3, 6]
應該返回4((3+6) / 2=4)。
寫過好多回了,還是沒有一次寫對,哎,注意在getval裡對a.empty()時候的處理。
const int int_min=-100000000;
const int int_max=100000000;
int findmedian(vector& a,int l,int r,vector& b);
int getval(vector& a,int k);
int median(vector&arr1, vector&arr2)
int findmedian(vector& a,int l,int r,vector& b)
兩個排序陣列的中位數
求兩個排序陣列中位數,這道題是很有意思的一道題目,演算法導論中9.3 8題,這題必須在o logn 的時間複雜度求解,否則肯定悲劇。這題有個關鍵的條件,那就是這兩個陣列長度相等 思路如下 陣列a 1,3,5,7,9 陣列b 2,4,6,8,10 首先取二者的中位數,在o 1 時間複雜度內求出,那麼陣...
兩個排序陣列的中位數
求兩個排序陣列中位數,這道題是很有意思的一道題目,演算法導論中9.3 8題,這題必須在o logn 的時間複雜度求解,否則肯定悲劇。這題有個關鍵的條件,那就是這兩個陣列長度相等 思路如下 陣列a 1,3,5,7,9 陣列b 2,4,6,8,10 首先取二者的中位數,在o 1 時間複雜度內求出,那麼陣...
兩個排序陣列的中位數
兩個排序的陣列a和b分別含有m和n個數,找到兩個排序陣列的中位數,要求時間複雜度應為o log m n 給出陣列a 1,2,3,4,5,6 b 2,3,4,5 中位數3.5 給出陣列a 1,2,3 b 4,5 中位數 3 public double findmediansortedarrays in...