返回与target相差最小的和值

//

给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。

返回这三个数的和。

假定每组输入只存在恰好一个解。

 

 

//class Solution { public int threeSumClosest(int[] nums, int target) { Arrays.sort(nums); int min = 0xffffff; int blog = 0; for(int i=0;i<nums.length-1;i++){ int start = i+1; int end = nums.length-1; while(start<end){ int res = nums[i]+nums[start]+nums[end]; if(res-target>=0){ if(res-target<min){ min=res-target; blog=1; } end--; } else{ if(target-res<min){ min=target-res; blog=-1; } start++; } } } if(blog==1) return min+target; else return target-min; } }

 

posted @ 2023-02-24 10:09  Zzzzzzxz  阅读(12)  评论(0)    收藏  举报