python leetcode 16. 3Sum Closest

方法与3Sum类似

class Solution(object):
    def threeSumClosest(self, nums, target):
        """
        :type nums: List[int]
        :type target: int
        :rtype: int
        """
        nums.sort()
        mindiff=1000000
        ln = len(nums)
        res=sum(nums[:3])
        for i in range(ln-2):
            left,right = i+1,ln-1
            while left < right:
                sum1 = nums[i]+nums[left]+nums[right]
                diff = abs(sum1 - target)
                if diff==0:
                    return target 
                if diff < mindiff:
                    mindiff = diff
                    res = sum1 
                if sum1>target:
                    right-=1
                if sum1<target:
                    left+=1
        return res

猜你喜欢

转载自blog.csdn.net/Neekity/article/details/84818303