給定兩個大小為 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,...