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 = 1
Output: 2
Explanation: 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:
- Initialise
das greater value, and it will be used as comparing the addition of subsequent low-bound and high-bound value. - To perform 2 pointers approach, sorting array is needed.
- Create Iteration through the array, set
lowerBoundasi+1andupperBoundasnums.length — 1. In while loop, if lowerBound is smaller than upperBound, setsumas initial index valuenums[i]plusnums[lowerBound] + nums[upperBound]. if the absolute value of the difference is greater than the difference of target and sum,target — sumwill be assigned intod. If target value is greater than sum, then incrementlowerBoundelse decrementupperBoundbecauselowerBoundstill not achieves the closest value to target and so doesupperBound. - Finally, return the difference of target and difference value
target — d.
