用 JavaScript 平衡陣列索引總和


問題

我們要求編寫一個 JavaScript 函式,該函式以整數陣列 arr 作為第一個也是唯一引數。

我們的函式要求選擇並返回陣列中的一個索引,使該索引左側元素的總和等於右側元素的總和。如果陣列中不存在這樣的索引,我們應該返回 -1。

例如,如果輸入函式為 −

輸入

const arr = [1, 2, 3, 4, 3, 2, 1];

輸出

const output = 3;

輸出說明

因為索引 3 兩邊的元素總和相等 (6)。

示例

程式碼如下 −

 線上示例

const arr = [1, 2, 3, 4, 3, 2, 1];
const balancingIndex = (arr = []) => {
   const findSum = arr => arr.reduce((acc, x) => acc + x, 0);
   for(let i = 0; i < arr.length; i++){
      const leftSum = findSum(arr.slice(0, i));
      const rightSum = findSum(arr.slice(i + 1));
      if(leftSum === rightSum){
         return i;
      };
   };
   return -1;
};
console.log(balancingIndex(arr));

輸出

3

更新於: 22-Apr-2021

471 次瀏覽

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告