LeetCode — 3Sum Closest

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).
  • 3 <= nums.length <= 10^3
  • -10^3 <= nums[i] <= 10^3
  • -10^4 <= target <= 10^4
  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.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store