代码
class Solution:
### 1228 动态规划(40 ms,15.7 MB)
def minPathSum(self, grid: List[List[int]]) -> int:
# 计算网格的行m、列n
m, n = len(grid), len(grid[0])
# 因为规定只能能下或者向右移动一步,则可以直接计算第一列grid[i][0]
for i in range(1, m): grid[i][0] += grid[i-1][0]
# 因为规定只能能下或者向右移动一步,则可以直接计算第一行grid[0][j]
for j in range(1, n): grid[0][j] += grid[0][j-1]
# 使用动态规划计算剩下的行列
for i in range(1, m):
for j in range(1, n):
grid[i][j] += min(grid[i][j-1], grid[i-1][j])
return grid[-1][-1] # 返回右下角格子的值