两个排序数组的中位数
给定两个大小为 m 和 n 的有序数组nums1 和nums2 。
请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。
示例 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, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: float
"""
nums1_len = len(nums1)
nums2_len = len(nums2)
if nums1_len==0:
if nums2_len==0:
return
else:
return (nums2[~nums2_len//2]+nums2[nums2_len//2])/2
if nums2_len==0:
if nums1_len==0:
return
else:
return (nums1[~nums1_len//2]+nums1[nums1_len//2])/2
su = 0
result=[]
while len(nums1) and len(nums2):
if nums1[0]<nums2[0]:
result.append(nums1.pop(0))
else:
result.append(nums2.pop(0))
if len(nums1):
result+=nums1
elif len(nums2):
result+=nums2
return (result[(nums1_len+nums2_len)//2]+result[~(nums1_len+nums2_len)//2])/2