二维矩阵路径最小和

给定一个 n * m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。
解题思路:
代码如下:
def shortestRoadsum(arr, n, m):
    dp = arr[0]
    for i in range(1, m):
        dp[i] += dp[i - 1]
    for i in range(1, n):
        dp[0] += arr[i][0]
        for j in range(1, m):
            dp[j] = min(dp[j], dp[j-1]) + arr[i][j]
    return dp[-1]


n, m = map(int, input().split())
arr = []
for i in range(n):
    arr.append(list(map(int, input().split())))
print(shortestRoadsum(arr, n, m))


全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务