LeetCode4 兩個排序陣列的中位數

2021-08-21 11:36:34 字數 886 閱讀 9824

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

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

示例 1:

nums1 = [1, 3]

nums2 = [2]

中位數是 2.0

示例 2:

nums1 = [1, 2]

nums2 = [3, 4]

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

兩個有序陣列,找中位數,要求時間複雜度位log(m+n),我寫出來的是(m+n)/2。

類似於將兩個有序陣列重新排列成乙個新的有序陣列,只不過排列到一半的時候就可以停止了。

還有陣列長度之和m+n的是奇是偶要分開來討論,因為偶數字的中位數是兩個相加/2。

用了不少變數做中間儲存,空間複雜度o(1)。

要注意nums1陣列遍歷完之後,nums2陣列還有數字沒有遍歷的情況。

**量有些多,**也有些亂,一心光想著睡覺了。不過思路還是比較簡單噠。

class solution else

mid --; mid2 --;

if ( 0 == mid || 0 == mid2)

}if (mid > 0 || mid2 > 0)

while (j < len2)

}return temp/2;

}elseelse

mid --;

if ( 0 == mid )

}if (mid > 0)

i ++;

}while (j < len2)

j ++;}}

return temp;}}

}

好了 去睡覺啦 晚安。

leetcode 4 兩個排序陣列的中位數

給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2 請找出這兩個有序陣列的中位數。要求演算法的時間複雜度為 o log m n 示例 1 nums1 1,3 nums2 2 中位數是 2.0 示例 2 nums1 1,2 nums2 3,4 中位數是 2 3 2 2.5 思路 兩個陣...

LeetCode 4 兩個排序陣列的中位數

給定兩個大小為 m 和 n 的有序陣列nums1和nums2。請找出這兩個有序陣列的中位數。要求演算法的時間複雜度為 o log m n nums1 1,3 nums2 2 中位數是 2.0 nums1 1,2 nums2 3,4 中位數是 2 3 2 2.5 本來可以歸併排序,直接求中位數,但是由...

LeetCode 4 兩個排序陣列的中位數

題目描述 給定兩個大小為 m 和 n 的有序陣列nums1和nums2。請找出這兩個有序陣列的中位數。要求演算法的時間複雜度為 o log m n 你可以假設nums1和nums2均不為空。困難題,要求演算法時間複雜度為o log m n 也就是最優方法 參考解法 二分法查詢,每次捨棄部分區間 pu...