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

2021-09-10 08:09:53 字數 813 閱讀 6974

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

class

solution

(object):

deffindmediansortedarrays

(self, nums1, nums2)

:"""

:type nums1: list[int]

:type nums2: list[int]

:rtype: float

"""nums3 = nums1 + nums2

nums3.sort(

) len_nums =

len(nums3)

if len_nums %2==

0:return

((nums3[len_nums/2]

+ nums3[len_nums/2-

1])/

2)else

:return

(nums3[

int(len_nums/2)

])

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

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

二 Leetcode演算法尋找兩個有序陣列的中位數

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

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

題目時間複雜度要求不高於o log m n m,n分別是兩個陣列的長度。對數級的時間複雜度就應該用二分查詢來做了。整體思路就是 先分別找到兩個陣列的中位數a,b,如果ab,說明整體中位數字於a的前半段或b的後半段。不斷這樣二分下去即可。其實,這道題可以轉換為尋找有序陣列中的第k個數,對應於中位數的話...