class Solution {
public:
int threeSumClosest(vector<int>& nums, int target) {
int sum, better_sum = 100000;
int n = nums.size();
sort(nums.begin(), nums.end());
for(int i = 0; i < n - 2; i++){
if(i > 0 && nums[i] == nums[i - 1]) continue;
int l_point = i + 1, r_point = n - 1;
while(l_point < r_point){
int sum = nums[i] + nums[l_point] + nums[r_point];
if(abs(sum - target) < abs(better_sum - target))
better_sum = sum;
if(sum == target){
return target;
}
else if(sum < target){
l_point++;
}
else{
r_point--;
}
}
}
return better_sum;
}
};
Accepted
131/131 cases passed (4 ms)
Your runtime beats 97.99 % of cpp submissions
Your memory usage beats 85.98 % of cpp submissions (9.5 MB)