leetcode刷题记录-找出这两个有序数组的中位数(python版本)

谨以此文记录一下自己刷题的过程,虽然技术能力一般,相信刷完整套题目自己的编程能力定会有提高,代码都是个人创作,不一定是最好的,仅供参考和交流

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

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

你可以假设 nums1 和 nums2 不会同时为空。

示例 1:

nums1 = [1, 3]

nums2 = [2]

则中位数是 2.0

示例 2:

nums1 = [1, 2]

nums2 = [3, 4]

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

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/median-of-two-sorted-arrays

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

code:

class Solution(object):

    def findMedianSortedArrays(self, nums1, nums2):

        """

        :type nums1: List[int]

        :type nums2: List[int]

        :rtype: float

        """

        num = []

        i = 0

        j = 0

        while True:

            if i == len(nums1):

                num.extend(nums2[j:])

                break

            if j == len(nums2):

                num.extend(nums1[i:])

                break

            n1 = nums1[i]

            n2 = nums2[j]

            if n1 < n2:

                num.append(n1)

                i+=1

            else:

                num.append(n2)

                j+=1

        length = len(num)

        if length % 2 == 0:

            return (num[length/2] + num[length/2-1])*1.0/2

        else:

            return num[length/2]

你可能感兴趣的:(leetcode刷题记录-找出这两个有序数组的中位数(python版本))