Untitled
🧩 Syntax:
class Solution {
fun minPathSum(grid: Array<IntArray>): Int {
val h = grid.size
val w = grid[0].size
val m = Array(h) { IntArray(w) { 0 }}
(0 until h).reversed().forEach { i ->
(0 until w).reversed().forEach { j ->
val value = grid[i][j]
val rightSum = if (j == w - 1) null else m[i][j + 1]
val downSum = if (i == h - 1) null else m[i + 1][j]
m[i][j] = value + (listOfNotNull(rightSum, downSum).minOrNull() ?: 0)
// println("i: $i, j: $j, m[i][j]=${m[i][j]}")
}
}
// println("grid")
// print(grid)
// println("m")
// print(m)
return m[0][0]
}
fun print(m: Array<IntArray>) {
m.forEach { row ->
println(row.contentToString())
}
}
}