class Solution:def minPathSum(self, grid: List[List[int]]) -> int:#f[i][j] = min(f[i][j-1], f[i-1][j]) + grid[i][j]if not grid:return Nonem = len(grid)n = len(grid[0])path = [0] * npath[0] = grid[0][0]for i in range(1, n):path[i] = path[i-1] + grid[0][i]for i in range(1, m):for j in range(n):if j == 0:path[j] = path[j] + grid[i][j]else:path[j] = min(path[j], path[j-1]) + grid[i][j]return path[-1]
class Solution:def minPathSum(self, grid: List[List[int]]) -> int:#f[i][j] = min(f[i][j-1], f[i-1][j]) + grid[i][j]if not grid:return Nonem = len(grid)n = len(grid[0])f = [[float("inf")] * (n + 1) for _ in range(m + 1)]f[0][1] = 0for i in range(1, m + 1):for j in range(1, n + 1):f[i][j] = min(f[i][j-1], f[i-1][j]) + grid[i-1][j-1]return f[-1][-1]
