go - 编译错误 : Non-Constant Array Bound (Dynamic Programming)

标签 go dynamic

我正在尝试使用 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/

相关文章:

go - 我的查找功能是否遵循最佳实践

docker - 选择 Golang docker 基础镜像

json - 使用Golang从AWS api解析数据

PHP将动态字段保存到MYSQL数据库

database - 动态Word文档

javascript - 插入大量动态 DOM 元素时性能低下

c - 通用动态数组未正确更新属性

javascript - 使用 JavaScript 的动态链接

ssh - 调用: handshake failed: ssh: no common algorithms Error in ssh client for golang失败

docker - Heroku与docker一键部署golang应用程序