# LeetCode — 3Sum Closest

1 min readJul 27, 2021

Given an array `nums` of n integers and an integer `target`, find three integers in `nums` such that the sum is closest to `target`. Return the sum of the three integers. You may assume that each input would have exactly one solution.

Example 1:

`Input: nums = [-1,2,1,-4], target = 1Output: 2Explanation: The sum that is closest to the target is 2. (-1 + 2 + 1 = 2).`

Constraints:

• `3 <= nums.length <= 10^3`
• `-10^3 <= nums[i] <= 10^3`
• `-10^4 <= target <= 10^4`

Solution:

Steps of resolving the problem:

1. Initialise `d` as greater value, and it will be used as comparing the addition of subsequent low-bound and high-bound value.
2. To perform 2 pointers approach, sorting array is needed.
3. Create Iteration through the array, set `lowerBound` as `i+1` and `upperBound` as `nums.length — 1` . In while loop, if lowerBound is smaller than upperBound, set `sum` as initial index value `nums[i]` plus `nums[lowerBound] + nums[upperBound]` . if the absolute value of the difference is greater than the difference of target and sum, `target — sum`will be assigned into `d`. If target value is greater than sum, then increment `lowerBound` else decrement `upperBound` because `lowerBound` still not achieves the closest value to target and so does `upperBound`.
4. Finally, return the difference of target and difference value `target — d`.