Я вот так сделал:
function partsSums(ls) {
if(ls.length==0) return [0];
result=ls;
result[i=result.length]=0;
i--;
while(i!==-1)
result[i] = result[i+1]+ls[i--];
return result;
}
Test Results:
partsSums
Basic tests
Random tests
Completed in 2070ms
линк
PS: RAX7, ... а моё за ~3000ms ¯\_(ツ)_/¯
выжмешь ещё круче?)
PS2: RAX7, Кстати,
там лучший результат - это тоже мутация, но работает за 927.29ms (наши же - менее 100ms).
function partsSums(ls) {
ls.unshift(0);
let sum = ls.reduce((p, c) => p + c, 0);
return ls.map(v => sum = sum - v);
}