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

2021-10-03 14:52:55 字數 991 閱讀 8877

給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。

請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 o(log(m + n))。

你可以假設 nums1 和 nums2 不會同時為空。

示例1:

nums1 = [1, 3]

nums2 = [2]

則中位數是 2.0

示例2:

nums1 = [1, 2]

nums2 = [3, 4]

則中位數是 (2 + 3)/2 = 2.5

誠然,求解答案本身並不是很難,關鍵在於演算法的時間複雜度為o(log(m + n))。根據這個複雜度那幾乎可以敲定得用二分遞迴,但是寫到後來,邊界問題把我給整懵了,所以只能不要臉地貼乙個複雜度為**o(m + n)**的上來…

還是有些可以改進的地方,比如說我這裡多用了個陣列來存放中間以前的排序值是毫無必要的,浪費了空間,其實就存兩個相應的值(left,right)就行了。

/**

* @param nums1

* @param nums2

* @return

*/var

findmediansortedarrays

=function

(nums1, nums2)

if(index2 >= nums2.length)

if(nums1[index1]

< nums2[index2]

)else

}let finalindex = temparr.length -1;

if(sumlength ===0)

else

if(sumlength %

2===0)

else

};

leetcode系列4 尋找兩個有序陣列的中位數

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

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

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

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

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