LeetCode-16. 最接近的三数之和

题目来源

题目详情

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

返回这三个数的和。

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

示例 1:

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

示例 2:

输入: nums = [0,0,0], target = 1
输出: 0

提示:

  • 3 <= nums.length <="1000</code"><!--=-->
  • -1000 <= nums[i] <="1000</code"><!--=-->
  • -104 <= target <="104</code"><!--=-->

相似题目

题解分析

class Solution {
    public int threeSumClosest(int[] nums, int target) {
        int minans = Integer.MAX_VALUE;
        int ans = 0;
        int len = nums.length;
        Arrays.sort(nums);// 对数组进行排序
        for(int a = 0; a leave){
                    if(Math.abs(target - nums[a] - nums[b] - nums[c]) < minans){
                        minans = Math.abs(target - nums[a] - nums[b] - nums[c]);
                        ans = nums[a] + nums[b] + nums[c];
                    }
                    c--;
                }

                if(b == c){
                    break;
                }

                if(Math.abs(target - nums[a] - nums[b] - nums[c]) < minans){
                    minans = Math.abs(target - nums[a] - nums[b] - nums[c]);
                    ans = nums[a] + nums[b] + nums[c];
                }
            }
        }
        return ans;
    }
}

Original: https://www.cnblogs.com/GarrettWale/p/16103675.html
Author: Garrett_Wale
Title: LeetCode-16. 最接近的三数之和

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583194/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球