給定兩個大小爲 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
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/median-of-two-sorted-arrays
思路很簡單
合併以來如果奇數就去中間
偶數將他們相加求和
class Solution:
def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:
a = len(nums1) + len(nums2)
nums = nums1 + nums2
nums.sort()
if a % 2== 0:
return (nums[a//2-1] + nums[a//2])/2
else:
return (nums[(a+1)//2-1])/1
這裏我主要想講一個\和\問題
在切片中要int,但是題目要求float,因爲[1,2,3,4]的中位數是2.5
nums[i] i一定是int
/得到的是float