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

2021-10-21 18:13:53 字數 1354 閱讀 1165

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

難度困難3790

給定兩個大小分別為mn的正序(從小到大)陣列nums1nums2。請你找出並返回這兩個正序陣列的中位數

示例 1:

輸入:nums1 = [1,3], nums2 = [2]輸出:2.00000解釋:合併陣列 = [1,2,3] ,中位數 2
示例 2:

輸入:nums1 = [1,2], nums2 = [3,4]輸出:2.50000解釋:合併陣列 = [1,2,3,4] ,中位數 (2 + 3) / 2 = 2.5
示例 3:

輸入:nums1 = [0,0], nums2 = [0,0]輸出:0.00000
示例 4:

輸入:nums1 = , nums2 = [1]輸出:1.00000
示例 5:

輸入:nums1 = [2], nums2 =輸出:2.00000

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

class solution:

def findmediansortedarrays(self, nums1: list[int], nums2: list[int]) -> float:

l1 = len(nums1)

l2 = len(nums2)

l = l1+l2

le = l2 if l1>l2 else l1

r = 

j = 0

k = 0

for i in range(0,l):

if jif nums1[j]<=nums2[k]:

j+=1

else:

k+=1

else:

k+=1

j+=1

return (r[l//2]+r[l//2-1])/2 if l%2==0 else r[l//2]/1

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