是否可以实现与
相同的功能def filler(input: Array[Float], output: Array[Float]): Unit = {
var maxValue:Float = 0
var idx:Int = 1
output(0)= input(0)
while(idx < input.length) {
output(idx) = max(input(idx)/idx,maxValue)
maxValue = output(idx)
idx = idx + 1
}
}
借助于理解,或在其他任何&#34;功能性&#34;中重写它。方式是什么?
谢谢!
答案 0 :(得分:2)
def filler(input: Array[Float]): Array[Float] = {
input.zipWithIndex.scanLeft(0.0f) {
case (maxValue, (x, i)) => max(x/Math.max(1, i), maxValue)
}.tail
}