在 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP