给定两个大小为 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
设两个指针遍历两个数组,每次分别取两个数组的一个数进行比较,较小者插入新数组,最后取新数组的中位数
class Solution:
def findMedianSortedArrays(self, nums1: List[int], nums2: List[int]) -> float:
s1 = 0
s2 = 0
newList = []
while (s1 < len(nums1) and s2 < len(nums2)):
if nums1[s1] < nums2[s2]:
newList.append(nums1[s1])
s1 = s1 + 1
else:
newList.append(nums2[s2])
s2 = s2 + 1
if s1 >= len(nums1):
while(s2 < len(nums2)):
newList.