Нужно оптимизировать код на kotlin
Есть задача: https://www.codewars.com/kata/5ce399e0047a45001c853c2b/train/kotlin
Код, который я написал для её решения:
fun sumParts(ls: IntArray): IntArray {
// your code
var res = IntArray(size = ls.size + 1)
for(i in ls.indices){
var sum: Int = 0
for (j in i until ls.size){
sum += ls[j]
}
res[i] = sum
}
return res
}
При проверки выскакивает следующая ситуация:

Грубо говоря, код работает, но при работе с большими данными, скорость его работы недостаточно велика. Я уже оптимизировал всё, что мог. Подскажите, пожалуйста, что ещё можно с этим сделать?
Ответы (2 шт):
Автор решения: MBo
→ Ссылка
- Посчитайте общую сумму
- Ещё раз пройдите по списку, отнимая очередной элемент от суммы и выводя результат
Автор решения: Кирилл Малышев
→ Ссылка
Вам не нужен вложенный цикл. Заполняйте res с конца. Каждый раз вам надо добавлять к сумме очередной элемент массива ls.
Что-то вроде такого:
var sum: Int = 0
for(i in ls.size - 1 downTo 0){
res[i + 1] = sum
sum += ls[i]
}
res[0] = sum