1def min_path_sum(grid):
2 rows, cols = len(grid), len(grid[0])
3 dp = [[0] * cols for _ in range(rows)]
4 for row in range(rows):
5 for col in range(cols):
6 if row == 0 and col == 0:
7 dp[row][col] = grid[row][col]
8 elif row == 0:
9 dp[row][col] = dp[row][col - 1] + grid[row][col]
10 elif col == 0:
11 dp[row][col] = dp[row - 1][col] + grid[row][col]
12 else:
13 dp[row][col] = min(dp[row - 1][col], dp[row][col - 1]) + grid[row][col]
14 return dp[-1][-1]