TapeEquilibrium
Lesson from https://codility.com/programmers/lessons/3-time_complexity/tape_equilibrium/
by evgkch
JavaScript
const sequence = (A) => {
let arr = [];
let a = 0;
A.map( (b) => {
b = b + a;
arr.push(b);
a = b;
});
return arr;
};
const residual = (a, s) => Math.abs(s - 2 * a);
const solution = (A) => {
let length = A.length - 1;
let S = sequence(A);
let min = residual( S[0], S[length] );
for (let i = 1; i < length; i++) {
if (residual( S[i], S[length]) === 0) {
return 0;
} else if (residual( S[i], S[length]) < min) {
min = residual( S[i], S[length]);
}
}
return min;
}
let a = [3, 1, 2, 4, 3]
console.log(solution(a))