class Solution: def minPathSum(self, grid: List[List[int]]) -> int: r = [] for i in range(len(grid)): r.append([]) for i , l in enumerate(grid): for j, num in enumerate(l): if i == 0 and j == 0: r[i].append(num) continue if i == 0: r[i].append(num + r[i][j - 1]) continue if j == 0: r[i].append(num + r[i - 1][0]) continue r[i].append(min(r[i - 1][j], r[i][j - 1]) + num) width = len(grid[0]) height = len(grid) return r[height - 1][width - 1]