class Solution:
def threeSumClosest(self, nums: List[int], target: int) -> int:
nums.sort()
minSum = (float("inf"), 0)
for i, num in enumerate(nums): # n
l, r = i + 1, len(nums) - 1
while l < r:
curSum = num + nums[l] + nums[r]
if curSum == target:
return target
elif curSum > target:
r -= 1
else:
l += 1
diff = abs(target - curSum)
if diff < minSum[0]:
minSum = (diff, curSum)
return minSum[1]