16. 3Sum Closest (Medium) - TengnanYao/daily_leetcode GitHub Wiki
class Solution(object):
def threeSumClosest(self, nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: int
"""
n = len(nums)
nums.sort()
result = target
diff = float("inf")
for i in range(n):
l, r = i + 1, n - 1
while l < r:
s = nums[i] + nums[l] + nums[r]
if abs(s - target) < diff:
result = s
diff = abs(s - target)
if s > target:
r -= 1
elif s < target:
l += 1
else:
return target
return result