/**
* 最接近的三数之和
* @param {Array} nums 输入数组
* @param {Number} target 目标值
* @return {Number} result 返回三个数之和
*/
let nums = [-1, 2, 1, -4],
target = 1;
let nums1 = [0, 0, 0],
target1 = 1;
var threeSumClosest = function (nums, target) {
let result = Number.MAX_SAFE_INTEGER;
nums.sort((a, b) => a - b);
for (let i = 0; i < nums.length; i++) {
let left = i + 1;
let right = nums.length - 1;
while (left < right) {
let sum = nums[i] + nums[left] + nums[right];
if (Math.abs(sum - target) < Math.abs(result - target)) {
result = sum;
}
if (sum < target) {
++left;
} else if (sum > target) {
--right;
} else {
return target;
}
}
}
return result;
};
console.log(threeSumClosest(nums, 1));//2
console.log(threeSumClosest(nums1, 1));//0
14.手写JavaScript最接近的三数之和
最新推荐文章于 2024-06-14 15:02:13 发布