class Solution:
def threeSumClosest(self, nums: List[int], target: int) -> int:
n = len(nums)
nums.sort()
result = nums[0] + nums[1] + nums[2]
for i in range(n - 2):
l = i + 1
r = n - 1
while l < r:
tmp_target = nums[i] + nums[l] + nums[r]
if abs(tmp_target - target) < abs(result - target):
result = tmp_target
if tmp_target > target:
r -= 1
elif tmp_target < target:
l += 1
else:
return result
return result