JavaScript 中相等總和的三分陣列


問題

我們需要編寫一個 JavaScript 函式,該函式將一個整數陣列作為第一個且唯一的引數。只有當陣列可以分為三部分時且每部分具有相等總和才能返回 true,否則返回 false。

例如,如果函式輸入為 −

const arr = [3, 3, 6, 5, -2, 2, 5, 1, -9, 4];

那麼輸出應該是 −

const output = true;

輸出解釋

因為,

3 + 3 = 6 = 5 - 2 + 2 + 5 + 1 - 9 + 4

示例

程式碼為 −

 即時演示

const arr = [3, 3, 6, 5, -2, 2, 5, 1, -9, 4];
const thirdSum = (arr = []) => {
   const sum = arr.reduce((acc, val) => acc + val, 0);
   if(!Number.isInteger(sum / 3)){
      return false;
   };
   let count = 0;
   let curr = 0;
   const target = sum / 3;
   for(const num of arr){
      curr += num;
      if(curr === target){
         curr = 0;
         count += 1;
      };
   };
   return count === 3 && curr === 0;
};
console.log(thirdSum(arr));

輸出

控制檯輸出為 −

true

更新於: 09-Apr-2021

75 次檢視

開啟您的 職業

完成課程獲得認證

開始
廣告
© . All rights reserved.