题目描述
给定一个由非负整数填充的m x n的二维数组,现在要从二维数组的左上角走到右下角,请找出路径上的所有数字之和最小的路径。
注意:你每次只能向下或向右移动。
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.
Note: You can only move either down or right at any point in time.
解答
本题是这道题的变形,思路基本一致,代码如下:
class Solution:
def minPathSum(self , grid ):
# write code here
m, n = len(grid), len(grid[0])
for i in range(1, n):
grid[0][i] += grid[0][i-1]
for j in range(1, m):
grid[j][0] += grid[j-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]