本文共 924 字,大约阅读时间需要 3 分钟。
今天开始看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)