16. 最接近的三数之和

题目:
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。

思路:在15题基础上进行修改。增加变量temp最接近程度,aabs当前接近程度。

代码:
class Solution {
public int threeSumClosest(int[] nums, int target) {
Arrays.sort(nums);
int sum=10000,temp=1000,aabs=0;
for(int i=0;i<nums.length-2;i++){
for(int j=i+1,k=nums.length-1;j<k;){
if(nums[i]+nums[j]+nums[k]==target){
return target;
}
if(nums[i]+nums[j]+nums[k]<target){
aabs=Math.abs(target-nums[i]-nums[j]-nums[k]); //当前接近程度
if(aabs<temp){ //当前接近为目前最接近
temp=aabs;
sum=nums[i]+nums[j]+nums[k];
}
j++;
}
else{
aabs=Math.abs(target-nums[i]-nums[j]-nums[k]); //当前接近程度
if(aabs<temp){ //当前接近为目前最接近
temp=aabs;
sum=nums[i]+nums[j]+nums[k];
}
k--;
}
}
}

return sum;

}

}

posted @   堤苏白  阅读(75)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示