Minimum Path Sum

Minimum Path Sum

dp version - 52ms

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution:
def minPathSum(self, grid):
"""
:type grid: List[List[int]]
:rtype: int
"""
m = len(grid)
n = len(grid[0])
for i in range(1, n):
grid[0][i] += grid[0][i-1]
for i in range(1, m):
grid[i][0] += grid[i-1][0]
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[-1][-1]

test code

1
2
In [67]: s = Solution(); t = s.minPathSum([[1,3,1],[1,5,1],[4,2,1]]); print(t)
7

leet code