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
`d`

as 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
`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`

. - Finally, return the difference of target and difference value
`target — d`

.