LeetCode — 3Sum Closest

Steven Lu
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:

  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 — sumwill 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.

--

--