【python/Hard/4】Median of Two Sorted Arrays

版权声明:小明酱私有,私自转载要捶你小胸口哦~ https://blog.csdn.net/alicelmx/article/details/82587279

今天开始看hard题目啦,有点开心~

题目

这里写图片描述

实现代码

class Solution(object):
    def findMedianSortedArrays(self, nums1, nums2):
        """
        :type nums1: List[int]
        :type nums2: List[int]
        :rtype: float
        """
        len1,len2 = len(nums1),len(nums2)
        if (len1+len2) % 2 == 1:
            return self.getKth(nums1,nums2,(len1+len2)/2+1)
        else:
            return (self.getKth(nums1,nums2,(len1+len2)/2) + self.getKth(nums1,nums2,(len1+len2)/2+1)) * 0.5

    def getKth(self,nums1,nums2,k):
        len1,len2 = len(nums1),len(nums2)
        if len1 > len2:
            return self.getKth(nums2,nums1,k)
        if len1 == 0:
            return nums2[k-1]
        if k == 1:
            return min(nums1[0],nums2[0])
        p1 = min(k/2,len1)
        p2 = k - p1

        if nums1[p1-1] <= nums2[p2-1]:
            return self.getKth(nums1[p1:],nums2,p2)
        else:
            return self.getKth(nums1,nums2[p2:],p1)

猜你喜欢

转载自blog.csdn.net/alicelmx/article/details/82587279