4 尋找兩個正序陣列的中位數

2022-06-30 15:42:09 字數 437 閱讀 7482

本題求兩個陣列求中位數,並且要求log複雜度,那麼必然用到二分法,我們就要考慮怎麼比較;

1. 本題使用求兩陣列中第k小元素的輔助函式,使得,sumlens=7 時返回 get_k(4) , sumlens=8 時返回 get_k(4) ,get_k(5) ,由此可知,目前為止我們對於get_k的傳參k沒有考慮index

2.  get_k的核心思想就是,哪個陣列中位數小,就把該陣列左邊元素去掉,更新該陣列的起始index,並更新k

3. get_k函式的跳出條件有

1. 某陣列 index 更新到 len(num)了,即該陣列元素全被丟棄;則直接返回另一陣列第k小元素

2. k = 1 返回兩陣列最小值

4 尋找兩個正序陣列的中位數

思路 我現在還沒有進行優化,大概就是合併陣列 參照之前的順序表合併 然後如果合併陣列的大小sum是偶數,返回sum 2和sum 2 1兩個元素除以二,如果sum是奇數則直接返回sum 2的元素 double findmediansortedarrays int nums1,int nums1size...

4 尋找兩個正序陣列的中位數

給定兩個大小為 m 和 n 的正序 從小到大 陣列nums1和nums2。請你找出這兩個正序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設nums1和nums2不會同時為空。示例 1 nums1 1,3 nums2 2 則中位數是 2.0示例 2 nums1 1,2 nu...

4 尋找兩個正序陣列的中位數

題目描述 給定兩個大小為 m 和 n 的正序 從小到大 陣列 nums1 和 nums2。請你找出這兩個正序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空。示例 1 nums1 1,3 nums2 2 則中位數是 2.0 示例 2...