您的位置:首页 > 编程语言 > Python开发

LeetCode||64. Minimum Path Sum

2017-11-21 14:28 447 查看
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.

Example 1:

[[1,3,1],
[1,5,1],
[4,2,1]]

Given the above grid map, return 
7
.
Because the path 1→3→1→1→1 minimizes the sum.
这题还是类似的动态规划,判断条件变为取两个数之间最小的。

因此,例子中的结果矩阵为:

[[1,4,5],
[2,7,6],
[6,8,7]]

所以结果为7

class Solution(object):
def minPathSum(self, grid):
"""
:type grid: List[List[int]]
:rtype: int
"""
row = len(grid)
col = len(grid[0])
res = [[0 for i in range(col)] for j in range(row)]
res[0][0] = grid[0][0]
for i in range(1, row):
res[i][0] = res[i-1][0] + grid[i][0]
for i in range(1, col):
res[0][i] = res[0][i-1] + grid[0][i]
for i in range(1, row):
for j in range(1, col):
res[i][j] = min(res[i-1][j], res[i][j-1]) + grid[i][j]
return res[-1][-1]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode python