64 Minimum Path Sum
基本动态规划,类似于数字三角形。
class Solution(object):
def minPathSum(self, grid):
"""
:type grid: List[List[int]]
:rtype: int
"""
if len(grid) == 0 or len(grid[0]) == 0:
return 0
row, column = len(grid), len(grid[0])
for i in range(row - 2, -1, -1):
grid[i][column - 1] += grid[i + 1][column - 1]
for j in range(column - 2, -1, -1):
grid[row - 1][j] += grid[row - 1][j + 1]
for i in range(row - 2, -1, -1):
for j in range(column - 2, -1, -1):
grid[i][j] += min(grid[i][j+1], grid[i+1][j])
return grid[0][0]