/*
* @lc app=leetcode id=16 lang=cpp
*
* [16] 3Sum Closest
*/
// @lc code=start
class Solution {
public:
int threeSumClosest(vector<int>& nums, int target) {
int N = nums.size();
sort(nums.begin(),nums.end());
int mn = 10005;
int df = 0;
for(int i=0;i<N;i++){
int j = i+1;
int k = N-1;
while(j<k){
int sum = nums[i] + nums[j] + nums[k];
if(abs(sum - target) < mn){
mn = abs(sum - target);
df = sum - target;
}
if(sum > target){
k--;
}else if(sum < target){
j++;
}else{
return target;
}
}
while( i+1<N && nums[i+1] == nums[i]) i++;
}
return df+target;
}
};
// @lc code=end
No.200 - LeetCode[16] 3Sum Closest - 三数和最接近target
最新推荐文章于 2025-12-02 18:04:47 发布
本文详细解析了LeetCode上的经典题目3SumClosest,通过C++实现,介绍了如何找到三个数使得它们的和最接近目标值的算法。使用排序和双指针技巧,有效地解决了问题,提供了完整的代码示例。
331

被折叠的 条评论
为什么被折叠?



