题目描述
方法:
排序+双指针
class Solution:
def threeSumClosest(self, nums: List[int], target: int) -> int:
nums.sort()
d = inf
res = 0
for k in range(len(nums)):
i,j = k+1,len(nums)-1
while i < j:
s = nums[i] + nums[j] + nums[k]
diff = s - target
if abs(diff) < d:
res = s
d = abs(diff)
if diff > 0:
j -= 1
elif diff < 0:
i += 1
else:
return target
return res