目录
- 优化解法
- 暴力搜索
优化解法
看了题解之后的根据题解的意思编写的优化解法,感觉还行,代码算是比较简短了,没有复杂的逻辑,就是写的时候总是只记得记录那个sum,忘记要记录最小的差值,更新min_minus.
class Solution {
public int threeSumClosest(int[] nums, int target) {
Arrays.sort(nums);
int i=0,k=0,j=0,sum=0,n=nums.length,ans=0,min_minus=999999999;
for(;i<n-2;++i){
j=i+1;
k=n-1;
for(;j<k;){
sum=nums[i]+nums[j]+nums[k];
int minus=Math.abs(sum-target);
if(minus<min_minus){
min_minus=minus;
ans=sum;
}
if(sum<target){
++j;
}else if(sum>target){
--k;
}
else{
return ans;
}
}
}
return ans;
}
}
暴力搜索
class Solution {
public int threeSumClosest(int[] nums, int target) {
// Arrays.sort(nums);
int i=0,k=0,j=0,sum=0,n=nums.length,min_minus_num=999999999,ans=0;
for(;i<n-2;++i){
j=i+1;
for(;j<n-1;++j){
k=j+1;
for(;k<n;++k){
sum=nums[i]+nums[j]+nums[k];
int minus_num=Math.abs(target-sum);
if(minus_num<min_minus_num){
min_minus_num=minus_num;
ans=sum;
}
}
}
}
return ans;
}
}