image.png
    image.png

    1. class Solution:
    2. def threeSumClosest(self, nums: List[int], target: int) -> int:
    3. n = len(nums)
    4. nums.sort()
    5. result = nums[0] + nums[1] + nums[2]
    6. for i in range(n - 2):
    7. l = i + 1
    8. r = n - 1
    9. while l < r:
    10. tmp_target = nums[i] + nums[l] + nums[r]
    11. if abs(tmp_target - target) < abs(result - target):
    12. result = tmp_target
    13. if tmp_target > target:
    14. r -= 1
    15. elif tmp_target < target:
    16. l += 1
    17. else:
    18. return result
    19. return result