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

2021-10-11 17:46:43 字數 483 閱讀 7606

給定兩個大小為 m 和 n 的正序(從小到大)陣列 nums1 和 nums2。請你找出並返回這兩個正序陣列的中位數。

高階:你能設計乙個時間複雜度為 o(log (m+n)) 的演算法解決此問題嗎?

思路:已知陣列的長度 使用雙指標o(m+n)

class

solution

if(i2 == nums2.length)

//兩個指標都到達邊界,比價大小按順序取值

mid2 = nums1[i1]

< nums2[i2]

? nums1[i1++

]:nums2[i2++];

}return len %2==

0?(mid1+mid2)

/2.0

: mid2;

}}

劃分陣列

中位數的定義:將乙個集合劃分為兩個長度相等的子集,其中乙個子集中的元素總是大於另乙個子集中的元素。

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