# 给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。
# 示例 1:
# 输入:nums1 = [1,3], nums2 = [2]
# 输出:2.00000
# 解释:合并数组 = [1,2,3] ,中位数 2
# 示例 2:
# 输入:nums1 = [1,2], nums2 = [3,4]
# 输出:2.50000
# 解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5
# 示例 3:
# 输入:nums1 = [0,0,0,0,0], nums2 = [-1,0,0,0,0,0,1]
# 输出:0.00000
# 解释:合并数组 = [-1,0,0,0,0,0,0,0,0,0,0,1] ,中位数 (0 + 0) / 2 = 0
class Solution(object):
def findMedianSortedArrays(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: float
"""
nums = nums1 + nums2
nums.sort()
if len(nums) % 2 == 1:
return nums[int(len(nums) / 2)]
else:
return float(nums[int(len(nums) / 2)] + nums[int(len(nums) / 2 - 1)]) / 2
if __name__ == '__main__':
solution = Solution
num = solution.findMedianSortedArrays(solution, [1, 3], [2])
print(num)
num = solution.findMedianSortedArrays(solution, [1, 2], [3, 4])
print(num)
num = solution.findMedianSortedArrays(solution, [0, 0, 0, 0, 0], [-1, 0, 0, 0, 0, 0, 1])
print(num)
输出结果:
2
2.5
0.0