Leetcode-寻找两个有序数组的中位数
给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。请你找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。
示例:
nums1 = [1, 3]
nums2 = [2]
则中位数是 2.0
解决方法
将两个有序数组放入list,然后对list进行排序,最后判断该list元素个数的奇偶,如果为奇数则取中间的元素,如果为偶数则取中间两个元素的均值。
class Solution:
class Solution:
def findMedianSortedArrays(self, nums1, nums2):
"""
:type nums1: List[int]
:type nums2: List[int]
:rtype: float
"""
new_list = nums1 + nums2
new_list.sort()
lenght = len(new_list)
if lenght % 2 == 0:
return (new_list[lenght//2]+new_list[lenght//2-1]) / 2
else:
return new_list[lenght//2]