文章目錄:
題目:
給定兩個大小為 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
指令碼一及注釋:【116ms】
classsolution: #leetcode固定格式
def findmediansortedarrays(self, nums1: list[int], nums2: list[int]) ->float: #leetcode固定格式
len1 =len(nums1) #獲取第乙個列表的長度
len2 =len(nums2) #獲取第二個列表的長度
nums3 = nums1 +nums2 #合併兩個列表
nums3.sort() #將合併後的列表進行公升序排序
num = (len1 + len2)%2 #將兩列表長度取和後除以2取餘數,用於判斷合併列表的元素個數是單數還是雙數num1 = int((len1 + len2) / 2) #求合併列表的個數的中間數,並取整數
if(num ==0): #如果餘數為0,合併列表元素個數為偶數,進入相應的語句取中間數
return((nums3[num1]+nums3[num1-1])/2)
else
: #如果合併列表為奇數,則直接獲取相應的中間數即可
return(nums3[num1])
指令碼一邏輯:
leetcode04 尋找兩個有序陣列的中位數
給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空。示例 1 nums1 1,3 nums2 2 則中位數是 2.0 示例 2 nums1 1,2 ...
leetcode 04 尋找兩個有序陣列的中位數
給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空。示例 1 nums1 1,3 nums2 2 則中位數是 2.0 示例 2 nums1 1,2 ...
LeetCode 04尋找兩個有序陣列的中位數
給定兩個大小為 m 和 n 的有序陣列 nums1 和 nums2。請你找出這兩個有序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設nums1和nums2不會同時為空。示例 1 nums1 1,3 nums2 2 則中位數是 2.0示例 2 nums1 1,2 nums2...