在 JavaScript 中查找 n 个参数的所有可能的组合(加法和减法)总和
我们需要编写一个 JavaScript 函数,该函数包含任意数量的参数(所有参数都为 Number 类型)。
该函数应计算加法和减法的可能总和。
例如 - 如果参数是 1、2、3
那么所有可能的组合为 -
1 + 2 + 3 1 - 2 - 3 1 + 2 - 3 1 - 2 + 3
最后,该函数应得出最接近 0 的总和。在本例中,该答案恰好为 0。
示例
const findSmallestPositive = (...arr) => { let set = new Set([Math.abs(arr[0])]); for (let i = 1; i < arr.length; i++){ const secondSet = new Set; for (let d of Array.from(set)){ secondSet.add(Math.abs(d + arr[i])) secondSet.add(Math.abs(d - arr[i])) }; set = secondSet; }; return Math.min(...Array.from(set)) }; console.log(findSmallestPositive(5,3)) console.log(findSmallestPositive(1,2,3)) console.log(findSmallestPositive(1,2,3,5))
输出
这会产生以下输出 -
2 0 1
广告