题解 | #矩阵的最小路径和# go + 动态规划

矩阵的最小路径和

http://www.nowcoder.com/practice/7d21b6be4c6b429bb92d219341c4f8bb

go + 动态规划

  1. 先初始化dp数组 第一行、第一列 以及 dp[0][0] = matrix[0][0]
  2. 转移方程为: dp[i][j] = min(dp[i-1][j] , dp[i][j-1]) + matrix[i][j]
  3. 结果为 dp[rows-1][cols-1]
func minPathSum( matrix [][]int ) int {
    // write code here
    if len(matrix) == 0 {
        return 0
    }

    rows := len(matrix)
    cols := len(matrix[0])

    dp := make([][]int, rows)
    for i:=0; i< rows; i++{
        dp[i] = make([]int, cols)
    }

    dp[0][0] = matrix[0][0]

    for i:=1; i< rows; i++{
        dp[i][0] = dp[i-1][0] + matrix[i][0]
    }

    for i:=1; i< cols; i++{
        dp[0][i] = dp[0][i-1] + matrix[0][i]
    }


    for i:=1; i< rows; i++{
        for j:=1; j< cols; j++{
            if dp[i-1][j] > dp[i][j-1] {
                dp[i][j] = matrix[i][j] + dp[i][j-1]
            }else{
                dp[i][j] = matrix[i][j] + dp[i-1][j]
            }
        }
    }

    return dp[rows-1][cols-1]
}
全部评论

相关推荐

昨天 11:41
门头沟学院 Java
点赞 评论 收藏
分享
zzzzhz:兄弟你先猛猛投简历至少三百家,能约到面试就去面。最近可以速成智能小车,智慧家居烂大街的项目,不需要自己写,只需要把里面的代码讲解看明白就行。把其中涉及到的八股文都拿出来单独背一下,我去年找工作就一个智能小车智慧家居找了10k差不多。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-09 12:05
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务