leetcode 第4题 (Median of Two Sorted Arrays)

325 阅读1分钟

给定两个有序数组,找到这两个有序数组的中位数,要求时间复杂度为O(log(m+n))

例:

输入:[1,2], [3,4]

返回 :  (2 + 3) / 2 = 2.5


解:

class Solution:
    def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:
        nums1.extend(nums2)
        
        nums1.sort()
        
        len_num = len(nums1)
        
        result = []
        
        start, end = ((len_num -1) // 2, (len_num -1) // 2 + 2) if len_num % 2 == 0 else (len_num // 2, len_num // 2 + 1)
        
        result = nums1[start:end]
        
        return sum(result) / len(result)


使用了 python内建的 sum 、len 及list的sort等函数