在JavaScript中,使陣列奇數索引元素和偶數索引元素之和相等的所有可能方法總數


我們需要編寫一個JavaScript函式,該函式將數字陣列作為第一個也是唯一的引數。

然後,該函式應該嘗試從陣列中移除一個這樣的元素,移除該元素後,奇數索引處的元素之和等於偶數索引處的元素之和。在此過程中,該函式應該計算我們可以一次移除一個元素以實現所需組合的所有可能的唯一方法。

例如:

如果輸入陣列是:

const arr = [2, 6, 4, 2];

那麼輸出應該是2,因為在索引1和3處分別有兩個元素6和2構成了組合表。

當我們從陣列中移除6時:

[2, 4, 2] so the sum at odd indices = sum at even indices = 4

當我們從陣列中移除2時:

[2, 6, 4] so the sum at odd indices = sum at even indices = 6

示例

以下是程式碼:

const arr = [2, 6, 4, 2];
const possibleWays = (arr = []) => {
   const sum = new Array(arr.length);
   let res = 0;
   let oddSum = 0;
   let evenSum = 0;
   for (let i = 0; i < arr.length; ++i) {
      if (i % 2 === 0) sum[i] = (evenSum += arr[i]);
      else sum[i] = (oddSum += arr[i]);
   }
   for (let i = 0; i < arr.length; ++i) {
      if (i % 2 === 0) {
         if (2 * sum[i] - arr[i] + oddSum === 2 * (sum[i - 1] || 0) + evenSum) ++res;
      } else if (2 * sum[i] - arr[i] + evenSum === 2 * (sum[i - 1] || 0) + oddSum) {
         ++res;
      }
   }
   return res;
};
console.log(possibleWays(arr));

輸出

以下是控制檯輸出:

2

更新於:2021年1月18日

225次瀏覽

開啟你的職業生涯

完成課程獲得認證

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