题目
有一个矩阵map,它每个格子有一个权值。从左上角的格子开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,返回所有的路径中最小的路径和。
给定一个矩阵map及它的行数n和列数m,请返回最小路径和。保证行列数均小于等于100.
测试样例:
[[1,2,3],[1,1,1]],2,3
返回:4
思路
动态规划。滚动数组。水题。
代码
class MinimumPath:
def getMin(self, mmap, n, m):
# write code here
dp = [0 for i in range(m)]
for i in range(n):
for j in range(m):
if i == 0:
dp[j] = mmap[i][j] if j == 0 else dp[j - 1] + mmap[i][j]
else:
dp[j] = dp[j] + mmap[i][j] if j == 0 else min(dp[j], dp[j-1]) + mmap[i][j]
return dp[m - 1]