题解 | #矩阵的最小路径和#
矩阵的最小路径和
https://www.nowcoder.com/practice/7d21b6be4c6b429bb92d219341c4f8bb
动态规划
(1)初始化二维或者一维数组
(2)找递推公式
(3)完成对dp数组的填充
class Solution:
def minPathSum(self, matrix: List[List[int]]) -> int:
x = len(matrix)
y = len(matrix[0])
dp = [[0] * x for i in range(y)]
#对二维数组初始化
for i in range(y):
if i == 0:
dp[0][i] = matrix[0][i]
else:
dp[0][i] = matrix[0][i] + dp[0][i - 1]
for i in range(1,x):
dp[i][0] = matrix[i][0] + dp[i-1][0]
#对dp数组完成赋值
for i in range(1,x):
for j in range(1,y):
dp[i][j]=min(dp[i-1][j]+matrix[i][j],dp[i][j-1]+matrix[i][j])
return dp[x-1][y-1]
