class Solution {
public:
int threeSumClosest(vector<int>& nums, int target) {
int len = nums.size();
if(len < 3) return 0;
sort(nums.begin(), nums.end());
int res = nums[0] + nums[1] + nums[2];
for(int i = 0; i < len; i++) {
int start = i + 1, end = len - 1;
while(start < end) {
int sum = nums[i] + nums[start] + nums[end];
if(abs(sum - target) < abs(res - target))
res = sum;
if(sum < target) start++;
else if(sum > target) end--;
else return res;
}
}
return res;
}
};
LeetCode16. 最接近的三数之和(排序+双指针)
最新推荐文章于 2024-04-08 08:00:00 发布