私は多次元配列を持っています:
val M = Array.ofDim[Int](V, N)
目標は、有界要素 0 < w0 <= W が存在する最大の V 次元インデックスを見つけ、インデックスと要素値の両方を返すことです。
現在、機能するこのコード スニペットがありますが、これを行うためのより適切で効率的な方法があるかどうか疑問に思っています。
M.zipWithIndex.reverse.collectFirst({
case (arr, ind) if arr.exists(a => a <= W && a > 0) => {
arr.zipWithIndex.find(a => a._1 <= W && a._1 > 0) match {
case Some((weight, ind2)) => (ind, ind2, weight)
}
}
})