Python solution


  • 1
    X

    pop list which last element is bigger and not None, until get right number.
    用pop取最后一个元素比较大的非空list,直到取到对应的数字

    def findMedianSortedArrays(self, nums1, nums2):
        result = float()
        sum = len(nums1) + len(nums2)
        if sum & 1 == 1:
            med = sum//2
            while True:
                if med == 0:
                    if len(nums1) == 0:
                        result = nums2.pop()
                    elif len(nums2) == 0:
                        result = nums1.pop()
                    elif nums1[-1] > nums2[-1]:
                        result = nums1.pop()
                    else:
                        result = nums2.pop()
                    break
                if len(nums1) == 0:
                    nums2.pop()
                elif len(nums2) == 0:
                    nums1.pop()
                elif nums1[-1] > nums2[-1]:
                    nums1.pop()
                else:
                    nums2.pop()
                med -= 1
        else:
            med = sum//2
            while True:
                if med == 1:
                    if len(nums1) == 0:
                        result1 = nums2.pop()
                    elif len(nums2) == 0:
                        result1 = nums1.pop()
                    elif nums1[-1] > nums2[-1]:
                        result1 = nums1.pop()
                    else:
                        result1 = nums2.pop()
                    if len(nums1) == 0:
                        result2 = nums2.pop()
                    elif len(nums2) == 0:
                        result2 = nums1.pop()
                    elif nums1[-1] > nums2[-1]:
                        result2 = nums1.pop()
                    else:
                        result2 = nums2.pop()
                    result = float(result1+result2)/2
                    break
                if len(nums1) == 0:
                    nums2.pop()
                elif len(nums2) == 0:
                    nums1.pop()
                elif nums1[-1] > nums2[-1]:
                    nums1.pop()
                else:
                    nums2.pop()
                med -= 1
        return result

Log in to reply
 

Looks like your connection to LeetCode Discuss was lost, please wait while we try to reconnect.