8
Кто-нибудь имеет реализацию Scala Kadane's algorithm в функциональном стиле?Алгоритм Кадане в Scala
Кто-нибудь имеет реализацию Scala Kadane's algorithm в функциональном стиле?Алгоритм Кадане в Scala
Что об этом:
numbers.scanLeft(0)((acc, n) => math.max(0, acc + n)).max
Я предпочитаю складной раствор к раствору сканирования - хотя, конечно, элегантности к последнему. Во всяком случае,
numbers.foldLeft(0 -> 0) {
case ((maxUpToHere, maxSoFar), n) =>
val maxEndingHere = 0 max maxUpToHere + n
maxEndingHere -> (maxEndingHere max maxSoFar)
}._2
'xs.tail.scanLeft (xs.head) ((соотв, х) => (соотв + х) .max (х)). Max', если все они могут возможно быть отрицательным. : D – lcn