遍历加双指针
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)