64. 最小路径和
动态规划
grid[i][j] 表示从左上角开始 走到 i j 位置的最小路径和
- 第一列 依次相加
- 第一行 依次相加
- 当 i > 1 and j > 1时 grid[i][j] += min(grid[i - 1][j], grid[i][j - 1])
class Solution:
def minPathSum(self, grid: List[List[int]]) -> int:
# 动态规划
m = len(grid)
n = len(grid[0])
for i in range(1, m):
grid[i][0] += grid[i - 1][0]
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 - 1][j], grid[i][j - 1])
return grid[m-1][n-1]