题目描述

代码
class Solution {
public:
int threeSumClosest(vector<int>& nums, int target) {
sort(nums.begin(),nums.end());
int closestNum = nums[0] + nums[1] + nums[2];
for (int i = 0; i < nums.size() - 2; i++) {
int l = i + 1, r = nums.size() - 1;
while (l < r){
int threeSum = nums[l] + nums[r] + nums[i];
if (abs(threeSum - target) < abs(closestNum - target)) {
closestNum = threeSum;
}
if (threeSum > target) {
r--;
} else if (threeSum < target) {
l++;
} else {
return target;
}
}
}
return closestNum;
}
};