class Solution: def minPathSum(self, grid): m=len(grid) n=len(grid[0]) l=[[0]*(n) for i in range(m)] for i in range(m): for j in range(n): if i==0: l[0][j]=sum(grid[0][:j+1]) elif j==0: l[i][0]=sum([grid[k][0] for k in range(i+1)]) else: l[i][j]=min(l[i-1][j],l[i][j-1])+grid[i][j] return l[m-1][n-1]