#kotlin
#kotlin
Вопрос:
Я хотел бы суммировать последовательные числа в списке Kotlin. Если список имеет 0, то он должен начать суммировать числа после 0. Результатом будет список сумм. В основном суммируйте до первого 0, затем до следующего 0 и так далее. Например:
val arr = arrayOf(1, 2, 0, 2, 1, 3, 0, 4)
// list of sums = [3, 6, 4]
На данный момент я получил его, работая с fold
:
val sums: List<Int> = arr.fold(listOf(0)) { sums: List<Int>, n: Int ->
if (n == 0)
sums n
else
sums.dropLast(1) (sums.last() n)
}
но мне интересно, есть ли более простой или эффективный способ сделать это.