IT General
Codility #8-TapeEquilibrium
SoftArts
2018. 9. 18. 15:49
function solution(A) {
let sumAll = A.reduce((accu, curr) => accu + curr, 0); // sum of the array
let minDiff = Number.MAX_VALUE;
for (let i = 0, sumPart = 0, diff, n = A.length - 1; i < n; i++) {
sumPart += A[i];
// |sum(0~P-1) - sum(P~N-1)| equals to |2*sum(0~P-1) - sum(0~N-1)|
diff = Math.abs(sumPart * 2 - sumAll);
if (diff < minDiff) {
minDiff = diff;
}
}
return minDiff;
}