# 3 Sum Closest Program Problem Solution

We at gradjobopenings.com provide free job alerts of freshers job drives. In this website we list on campus job openings for freshers and off campus job openings for freshers and also work from home job openings. This is the best website to apply for off campus drive in India. Visit our website for government job alerts and private job alerts. We also list free interview notes and study materials, one of the best interview study website.comfortable to face the interviews:

Problem Statement

Given an integer array `nums` of length `n` 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).
```

Example 2:

```Input: nums = [0,0,0], target = 1
Output: 0
```

Constraints:

• `3 <= nums.length <= 1000`
• `-1000 <= nums[i] <= 1000`
• `-104 <= target <= 104`
• Time: O(n^2)O(n2)
• Space: O(|\texttt{ans}|)O(∣ans∣)

### 3 Sum Closest Program Problem Solution In C++

``````class Solution {
public:
int threeSumClosest(vector<int>& nums, int target) {
int ans = nums + nums + nums;

sort(begin(nums), end(nums));

for (int i = 0; i + 2 < nums.size(); ++i) {
if (i > 0 && nums[i] == nums[i - 1])
continue;
// choose nums[i] as the first num in the triplet,
// and search the remaining nums in [i + 1, n - 1]
int l = i + 1;
int r = nums.size() - 1;
while (l < r) {
const int sum = nums[i] + nums[l] + nums[r];
if (sum == target)
return sum;
if (abs(sum - target) < abs(ans - target))
ans = sum;
if (sum < target)
++l;
else
--r;
}
}

return ans;
}
};
``````

### 3 Sum Closest Program Problem Solution in JAVA

``````class Solution {
public int threeSumClosest(int[] nums, int target) {
int ans = nums + nums + nums;

Arrays.sort(nums);

for (int i = 0; i + 2 < nums.length; ++i) {
if (i > 0 && nums[i] == nums[i - 1])
continue;
// choose nums[i] as the first num in the triplet,
// and search the remaining nums in [i + 1, n - 1]
int l = i + 1;
int r = nums.length - 1;
while (l < r) {
final int sum = nums[i] + nums[l] + nums[r];
if (sum == target)
return sum;
if (Math.abs(sum - target) < Math.abs(ans - target))
ans = sum;
if (sum < target)
++l;
else
--r;
}
}

return ans;
}
}
``````

### 3 Sum Closest Program Problem Solution In Python

``````class Solution:
def threeSumClosest(self, nums: List[int], target: int) -> int:
ans = nums + nums + nums

nums.sort()

for i in range(len(nums) - 2):
if i > 0 and nums[i] == nums[i - 1]:
continue
l = i + 1
r = len(nums) - 1
while l < r:
sum = nums[i] + nums[l] + nums[r]
if sum == target:
return sum
if abs(sum - target) < abs(ans - target):
ans = sum
if sum < target:
l += 1
else:
r -= 1

return ans
``````
error: Content is protected !!