寻找两个正序数组的中位数——Python
程序员文章站
2023-12-21 16:33:10
...
题目详情:
给定两个大小分别为m和n的正序(从小到大)数组num1和num2。请你找出并返回这两正序数组的中位数。
题解:
def findMedianSortedArrays(nums1, nums2):
lt1 = len(nums1)
lt2 = len(nums2)
position = (lt1 + lt2)/2 + 1
i = 0
j = 0
ls = []
cur = 0
while i<lt1 or j<lt2:
if cur == position:
break
if not i < lt1:
ls.append(nums2[j])
j += 1
elif not j < lt2:
ls.append(nums1[i])
i += 1
else:
ls.append(min(nums1[i], nums2[j])
if nums1[i] > nums2[j]:
j += 1
else:
i += 1
cur += 1
if (lt1 + lt2) % == 0:
return float((ls[position-2] + ls[position-1])/2.0)
# 注意除的应该是2.0,在leedcode上不是2.0的话会整除,但是在pycharm上除2也是可以的
else:
return float(ls[position-1])