Leetcode-寻找两个有序数组的中位数

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]

猜你喜欢

转载自blog.csdn.net/duffon_ze/article/details/86671937
今日推荐