在 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

更新日期:25-11-2020

290 次瀏覽

開啟職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.