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
廣告
資料結構
組網
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP