给定一个 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))