LEETCODE打卡05

蓝咒 提交于 2020-03-06 01:10:07

Leetcode 打卡Day5

最接近的三数之和(python)
题目:
在这里插入图片描述
解答:

class Solution:
    def threeSumClosest(self, nums: List[int], target: int) -> int:
        n=len(nums)
        nums.sort()
        a=nums[0]+nums[1]+nums[2]
        b=nums[n-1]+nums[n-2]+nums[n-3]
        if n==3:
            return sum(nums)
        for i in range(n):
            if i>0 and nums[i]==nums[i-1]:
                i+=1
                continue
            l=i+1
            r=n-1
            while l<r:
                threeSum=nums[i]+nums[l]+nums[r]
                ere=threeSum-target
                if ere==0:
                    return threeSum
                elif ere<0:
                    if threeSum>=a:
                        a=threeSum
                    l+=1
                else:
                    if threeSum<=b:
                        b=threeSum
                    r-=1
        if(target-a)>(b-target):
            return b
        else:
            return a

在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!