给定一个数组和一个目标数,选出来数组中三个元素相加最接近目标数的的元素,并返回三个元素的和。
public static int threeSumClosest(int[] nums, int target) {
Arrays.sort(nums);
int result = nums[0]+nums[1]+nums[nums.length-1];
for (int i = 0; i < nums.length-2; i++) {
for (int j = i + 1, k = nums.length - 1; j < k;) {
int sum = nums[i] + nums[j] + nums[k];
if(sum>target){
k--;
}else{
j++;
}
if (Math.abs(sum - target) < Math.abs(result - target)) {
result = sum;
}
}
}
return result;
}
欢迎加入java交流群691761026