python写算法题:leetcode: 4. Median of Two Sorted Arrays

来源:互联网 发布:sql server for循环 编辑:程序博客网 时间:2024/05/18 03:30

https://leetcode.com/problems/median-of-two-sorted-arrays/#/description

class Solution(object):    def findPos(this,n1,pos1,n2,pos2,pos):        limit1=len(n1)        limit2=len(n2)        p=0        nn=0        ret=0        while True:            if limit1>pos1 and limit2>pos2:                if p>=pos:                    ret = min(n1[pos1], n2[pos2])                    break                if n1[pos1]<n2[pos2]:                    pos1+=1                else:                    pos2+=1            elif limit2>pos2:                if p>=pos:                    ret = n2[pos2]                    break                pos2+=1            else:                if p>=pos:                    ret = n1[pos1]                    break                pos1+=1            p+=1        return ret, pos1, pos2    def findMedianSortedArrays(self, nums1, nums2):        """        :type nums1: List[int]        :type nums2: List[int]        :rtype: float        """        if (len(nums1)+len(nums2))%2 == 1:            res,_,_ = self.findPos(nums1, 0, nums2, 0, (len(nums1)+len(nums2))/2)        else:            res,pos1,pos2 = self.findPos(nums1, 0, nums2, 0, (len(nums1)+len(nums2))/2-1)            res2,_,_ = self.findPos(nums1, pos1, nums2, pos2, 1)            res = (res+res2)/2.0        return res

思路:仔细考虑各种可能,算法本身无难度

原创粉丝点击