题解 | #矩阵的最小路径和# 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-18 15:57
门头沟学院 Java
最终归宿是测开:这个重邮的大佬在重邮很有名的,他就喜欢打92的脸,越有人质疑他,他越觉得爽😂
点赞 评论 收藏
分享
Yushuu:你的确很厉害,但是有一个小问题:谁问你了?我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了😆
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务