以下是 JavaScript 实现的代码:

function threeSumClosest(nums, target) {
    nums.sort((a, b) => a - b); // 先将数组排序
    let closestSum = nums[0] + nums[1] + nums[2]; // 先将最接近的值设为前三个数之和
    for (let i = 0; i < nums.length - 2; i++) {
        let left = i + 1, right = nums.length - 1;
        while (left < right) {
            let sum = nums[i] + nums[left] + nums[right];
            if (Math.abs(sum - target) < Math.abs(closestSum - target)) {
                closestSum = sum;
            }
            if (sum < target) {
                left++;
            } else if (sum > target) {
                right--;
            } else {
                return closestSum;
            }
        }
    }
    return closestSum;
}

这个函数的实现思路和常规的三数之和问题类似,只是在计算三个数之和与目标值的差值时,要用 Math.abs() 函数取绝对值,以便对比哪个三个数之和更接近目标值。

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

原文地址: http://www.cveoy.top/t/topic/0sM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录