题目 :矩阵的最小路径和

python
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param matrix int整型二维数组 the matrix
# @return int整型
#
class Solution:
def minPathSum(self , matrix: List[List[int]]) -> int:
# 动态规划
n = len(matrix)
m = len(matrix[0])
# 初始化dp表
dp = [[0]*m for i in range(n)]
dp[0][0] = matrix[0][0]
# 首行
for i in range(1,m):
dp[0][i] = dp[0][i-1]+matrix[0][i]
# 首列
for j in range(1,n):
dp[j][0] = dp[j-1][0]+matrix[j][0]
#状态转移
for i in range(1,n):
for j in range(1,m):
dp[i][j] = min(dp[i-1][j],dp[i][j-1])+matrix[i][j]
return dp[n-1][m-1]