Minimum Path Sum
动态规划,注意初始条件。。。
class Solution(object):
def minPathSum(self, grid):
"""
:type grid: List[List[int]]
:rtype: int
"""
m = len(grid)
if m:
n = len(grid[0])
else :
return 0
if not n:
return 0
dp = [[0]*(n+1) for _ in range(m+1)]
tmp = grid[0][0]
for i in range (2, n+1):
tmp += grid[0][i-1]
dp[1][i] = tmp
tmp = grid[0][0]
for j in range(2, m+1):
tmp += grid[j-1][0]
dp[j][1] = tmp
dp[1][1] = grid[0][0]
for i in range(2, m+1):
for j in range(2, n+1):
dp[i][j] = min(dp[i-1][j], dp[i][j-1]) + grid[i-1][j-1]
return dp[m][n]