力扣第五天——最接近三数之和

遍历加双指针

class Solution:
    def threeSumClosest(self, nums: List[int], target: int) -> int:
        nums.sort()
        n=len(nums)-1
        pos=[]
        neg=[]
        for i in range(0,n-1):
            j=i+1
            k=n
            while j<k:
                Sum=nums[i]+nums[k]+nums[j]-target
                if Sum==0:
                    return target
                if Sum>=0:
                    pos.append(Sum)
                    k-=1
                else:
                    neg.append(Sum)
                    j+=1
            
        pos.sort()
        neg.sort(reverse=True)
        if neg==[]:
            return pos[0]+target
        if pos==[]:
            return neg[0]+target
        if pos[0]+neg[0]>0:
            return (neg[0]+target)
        else:
            return (pos[0]+target)



发布了11 篇原创文章 · 获赞 0 · 访问量 204

猜你喜欢

转载自blog.csdn.net/yifeng113/article/details/104683324