我正在尝试使用 golang 解决动态规划的最小路径和问题,下面是我的程序,它显示编译错误。
enter code here
func minPathSum(grid [][]int) int {
var dp[m+1][n+1] int
dp[0][0] = grid[0][0]
//for column initialization
for i := 0; i <= m; i++ {
dp[i][0] = dp[i-1][0] + grid[i][0]
}
//for row initialization
for j := 0; j <= n; j++ {
dp[0][j] = dp[0][j-1] + grid[0][j]
}
for i := 0; i <= m; i++ {
for j := 0; j <= n; j++ {
dp[i][j] = min(dp[i][j-1], dp[i-1][j], dp[i-1][j-1]) + grid[i][j]
}
}
return dp[m][n]
}
最佳答案
正如@Motakjuq 在评论中提到的:您不能定义动态数组,数组的两个维度都必须是常量,但 slice 会帮助您。
使用这样的东西:
dp := make([][]int, m)
for i := range dp {
dp[i] = make([]int, n)
}
关于go - 编译错误 : Non-Constant Array Bound (Dynamic Programming),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44551138/