给定两个长度为 n 和 m 的升序数组(后一个数一定大于等于前一个数),请你找到这两个数组中全部元素的中位数。
数据范围:
,数组中的元素满足
class Solution: def Median(self, nums1: List[int], nums2: List[int]) -> float: n = len(nums1) + len(nums2) median = 0 index1, index2 = 0, 0 if n % 2 == 0: for _ in range(0, int(n / 2)): if index1 >= len(nums1): median = nums2[index2] index2 += 1 elif index2 >= len(nums2): median = nums1[index1] index1 += 1 elif nums1[index1] > nums2[index2]: median = nums2[index2] index2 += 1 else: median = nums1[index1] index1 += 1 if index1 >= len(nums1): median = (median + nums2[index2]) / 2 elif index2 >= len(nums2): median = (median + nums1[index1]) / 2 elif nums1[index1] > nums2[index2]: median = (median + nums2[index2]) / 2 else: median = (median + nums1[index1]) / 2 else: for _ in range(0, int((n + 1) / 2)): if index1 >= len(nums1): median = nums2[index2] index2 += 1 elif index2 >= len(nums2): median = nums1[index1] index1 += 1 elif nums1[index1] > nums2[index2]: median = nums2[index2] index2 += 1 else: median = nums1[index1] index1 += 1 return median