Вот мое решение, которое не соответствует требованиям к производительности. Насколько я могу судить, это похоже на другие решения, которые я искал:
function solution(A) {
let slice = A.slice(1,A.length);
let firstSliceSum = A[0];
let lastSliceSum = slice.reduce((a, b) => a + b);
let smallestValue = Math.abs(firstSliceSum-lastSliceSum);
for(let i=1;i<A.length-1;i++){
let shift = slice.shift();
firstSliceSum=firstSliceSum+shift;
lastSliceSum=lastSliceSum-shift;
let diff = Math.abs(firstSliceSum-lastSliceSum);
if(diff<smallestValue)smallestValue=diff;
}
return smallestValue;
}
У него есть только одно для l oop, которое выполняет итерации элементов, не считая начальную функцию «уменьшить». Я видел похожие Java решения, которые должны пройти со 100%. Ссылка на вызов: https://app.codility.com/programmers/lessons/3-time_complexity/tape_equilibrium/