使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

以上是 使JavaScript中的数组中的奇数偶数索引元素之和相等的总可能方法 的全部内容, 来源链接: utcz.com/z/330718.html

回到顶部