题目:
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/3sum-closest
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
第一次解答:
class Solution { public int threeSumClosest(int[] nums, int target) { int len = nums.length; Arrays.sort(nums); if (len < 3) return -1; int ans = nums[0] + nums[1] + nums[2]; for (int i = 0; i < len - 2; i++) { int L = i + 1; int R = len - 1; while (L < R) { int sum = nums[i] + nums[L] + nums[R]; if (Math.abs(target - sum) < Math.abs(target - ans)) { ans = sum; } if (sum < target) { L++; } else if (sum > target) { R--; } else { return ans; } } } return ans; } }