# ###暴力解
# def findMedianSortedArrays(nums1, nums2):
# nums, m, n = sorted(nums1+nums2), len(nums1), len(nums2)
# return (nums[(m+n-1)//2] + nums[(m+n)//2]) / 2
###合并有序数组
def findMedianSortedArrays(nums1, nums2):
m, n = len(nums1), len(nums2)
index = (m + n) // 2 if (m + n) % 2 else int((m + n) / 2)
if nums1 and nums2 and nums2[0] > nums1[0]:
nums1, nums2 = nums2, nums1
m, n = n, m
i, j = 0, n
for num in nums1:
while i <= index:
if i + 1 >= j or nums2[i] <= num <= nums2[i + 1]:
nums2.insert(i + 1, num)
i += 1
j += 1
break
i += 1
return nums2[index] if (m + n) % 2 else(nums2[index - 1] + nums2[index]) / 2
if __name__ == '__main__':
print(findMedianSortedArrays([3,4],[1,2,6,7,9]))
LeetCode4
于 2023-03-27 17:47:33 首次发布