[LeetCode By Python] 4. Median of Two Sorted Arrays

一、题目


Median of Two Sorted Arrays

二、解题


1)题意

给出两个已经排好序的有序数组,求出两个数组的中间值(如果有两个值,则求两个数的平均值)

2)关键点

题目本身不难,难在时间复杂度的要求,需要达到O(log(m+n))

三、思考:


1)如果抛去时间复杂度的要求,这题的思路便比较明晰。

  • 首先进行二路归并
  • 求得中位数

四、尝试与结果

1)时间复杂度O(m+n)

class Solution(object):
    def findMedianSortedArrays(self, nums1, nums2):
        i = 0
        j = 0
        numList = []
        result = -1
        while i < len(nums1) and j < len(nums2):
            if (nums1[i] < nums2[j]):
                numList.append(nums1[i])
                i += 1
            else:
                numList.append(nums2[j])
                j += 1
        if ( i == len(nums1)):
            numList.extend(nums2[j:])
        else:
            numList.extend(nums1[i:])

        if (len(numList)%2==1):
            result = numList[len(numList)/2]
        else:
            result = (numList[len(numList)/2] + numList[len(numList)/2 - 1])/2.0
        return result;

结果:AC(此算法的时间复杂度为O(m+n))

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容