16. 最接近的三数之和

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

示例:

输入:nums = [-1,2,1,-4], target = 1
输出:2
解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。

提示:

3 <= nums.length <= 10^3
-10^3 <= nums[i] <= 10^3
-10^4 <= target <= 10^4

        public int threeSumClosest(int[] nums, int target) {
            int ret=0;
            //依旧先排序,便于计算目标范围
            Arrays.sort(nums);
            //第一重循环,确定第一位数
            int temp= Integer.MAX_VALUE;//存储差值:因为提示了取值范围,所以三个数和target的差值已经不可能超过Integer.MAX_VALUE
            for (int i=0;i< nums.length-2;i++){
                int left=i+1;
                int right=nums.length-1;
                //双指针
                while (lefttarget,否则r+1比r更大,会导致>target更多
                    //当然i+l+rtarget){
                        right--;
                    }else if (sum

你可能感兴趣的:(16. 最接近的三数之和)