题目来源:
https://leetcode.com/problems/minimum-path-sum/description/

题目大意:
给定一个用非负数填充的m * n维方格,每个数字表示从当前方格移动到下一方格的距离,找到一条从左上角到右下角的最短路径,使其路径和最短。每次移动只能向右或向下。
解题思路:
因为只能向右或向下移动,所以题目简单很多,步骤如下:
(1)对第一行方格,每个数字自加它左边方格的数字,因为第一行只能向右移动;
(2)对第一列方格,每个数字自加它下边方格的数字,因为第一列只能向下移动;
(3)对其它方格,每个数字自加 它左边方格的数字 和 它下边方格的数字 的最小值;
(4)返回右下角方格的数字。
解题代码:
class Solution(object):
def minPathSum(self, grid):
for i in range(1,len(grid)):
grid[i][0] += grid[i-1][0]
for j in range(1,len(grid[0])):
grid[0][j] += grid[0][j-1]
for i in range(1,len(grid)):
for j in range(1,len(grid[0])):
grid[i][j] += min(grid[i-1][j],grid[i][j-1])
return grid[len(grid)-1][len(grid[0])-1]
算法性能:
803

被折叠的 条评论
为什么被折叠?



