給定一個包含非負整數(shù)的 m x n 網(wǎng)格 grid 闻鉴,請找出一條從左上角到右下角的路徑,使得路徑上的數(shù)字總和為最小茂洒。
說明:每次只能向下或者向右移動一步孟岛。
func MinimumPathSum(grid [][]int) int {
//自下而上遍歷,grid數(shù)組每個元素只會讀取一次,所以可將每個位置的最小和直接記錄在grid數(shù)組中渠羞,注意邊界即可斤贰,
for i := 0; i < len(grid); i++ {
for j := 0; j < len(grid[0]); j++ {
if j == 0 && i >= 1 {
grid[i][j] = grid[i-1][j] + grid[i][j]
continue
}
if i == 0 && j >= 1 {
grid[i][j] = grid[i][j-1] + grid[i][j]
continue
}
if i > 0 && j > 0 {
if grid[i-1][j] < grid[i][j-1] {
grid[i][j] = grid[i-1][j] + grid[i][j]
} else {
grid[i][j] = grid[i][j-1] + grid[i][j]
}
}
}
}
return grid[len(grid)-1][len(grid[0])-1]
}