def threeSumClosest(nums, target):
# 这个题只要找不到最终的结果的话,三个数一定是连在一起的,所以不会出现后面两个前面一个并且隔开的情况
nums = sorted(nums)
res = nums[0] + nums[1] + nums[len(nums) - 1]
for i in range(len(nums) - 2):
if i > 0 and nums[i] == nums[i - 1]:
continue
l = i + 1
r = len(nums) - 1
while l < r:
val = nums[i] + nums[l] + nums[r]
if abs(val - target) < abs(res - target):
res = val
if val == target:
return target
elif val < target:
l += 1
else:
r -= 1
return res
l = [0,2,1,-3]
print(threeSumClosest(l,1))