Talk is cheap.
func getMaxValue(grid [][]int) int {
m, n := len(grid), len(grid[0])
dp := make([]int, n)
for i := 0; i < m; i++ {
for j := 0; j < n; j++ {
if j > 0 {
if dp[j] > dp[j-1] {
dp[j] = grid[i][j] + dp[j]
} else {
dp[j] = grid[i][j] + dp[j-1]
}
} else {
dp[j] = grid[i][j] + dp[j]
}
}
}
return dp[n-1]
}