两个排序数组的中位数

作者: 不爱去冒险的少年y | 来源:发表于2018-05-11 10:38 被阅读3次

两个排序数组的中位数

给定两个大小为 m 和 n 的有序数组nums1 nums2 

请找出这两个有序数组的中位数。要求算法的时间复杂度为 O(log (m+n)) 。

示例 1:

nums1 = [1, 3]

nums2 = [2]

中位数是 2.0

示例 2:

nums1 = [1, 2]

nums2 = [3, 4]

中位数是 (2 + 3)/2 = 2.5

class Solution:

    def findMedianSortedArrays(self, nums1, nums2):

        """

        :type nums1: List[int]

        :type nums2: List[int]

        :rtype: float

        """

        nums1_len = len(nums1)

        nums2_len = len(nums2)

        if nums1_len==0:

            if nums2_len==0:

                return

            else:

                return (nums2[~nums2_len//2]+nums2[nums2_len//2])/2

        if nums2_len==0:

            if nums1_len==0:

                return

            else:

                return (nums1[~nums1_len//2]+nums1[nums1_len//2])/2

        su = 0

        result=[]

        while len(nums1) and len(nums2):

            if nums1[0]<nums2[0]:

                result.append(nums1.pop(0))

            else:

                result.append(nums2.pop(0))

        if len(nums1):

            result+=nums1

        elif len(nums2):

            result+=nums2

        return (result[(nums1_len+nums2_len)//2]+result[~(nums1_len+nums2_len)//2])/2

相关文章

  • #4 Median of Two Sorted Arrays

    在两个有序数组中寻找中位数,思想时归并排序的思想,将两个数组归并排序到一个数组中,提前算出中位数的个数减少循环次数

  • 两个排序数组的中位数

    两个排序数组的中位数 给定两个大小为 m 和 n 的有序数组nums1和nums2。 请找出这两个有序数组的中位数...

  • LintCode 80 [Median]

    原题 给定一个未排序的整数数组,找到其中位数。中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组...

  • Lintcode-中位数

    问题描述: 给定一个未排序的整数数组,找到其中位数。中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序...

  • 中位数

    给定一个未排序的整数数组,找到其中位数。中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N...

  • OJ lintcode 中位数

    给定一个未排序的整数数组,找到其中位数。中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N...

  • lintcode 两个排序数组的中位数

    两个排序的数组A和B分别含有m和n个数,找到两个排序数组的中位数,要求时间复杂度应为O(log (m+n))。给出...

  • LeetCode 4 [Median of two Sorted

    原题 两个排序的数组A和B分别含有m和n个数,找到两个排序数组的中位数,要求时间复杂度应为O(log (m+n))...

  • LeetCode 经典】MedianSortedArrays

    【LeetCode 经典】MedianSortedArrays 前言 在两个排序数组中寻找中位数。这个题目本质上二...

  • 两个有序数组的中位数

    题目: 有两个大小为 n 和 m 的排序数组nums1和nums2。 请找出两个排序数组的中位数并且总的运行时间复...

网友评论

    本文标题:两个排序数组的中位数

    本文链接:https://www.haomeiwen.com/subject/fhtfdftx.html