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

LeetCode 64. Minimum Path Sum---Python实现

2018-01-16 15:13 429 查看
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.

这个文章和前两题一样都是典型的动态规划问题。主要是找出grid[i][j]=grid[i][j]+min(grid[i-1][j],grid[i][j-1])递推关系式,这里加个min判断就行了。class Solution(object):
def minPathSum(self, grid):
"""
:type grid: List[List[int]]
:rtype: int
"""
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): #从1开始就行,
for j in range(1,n):
grid[i][j]=grid[i][j]+min(grid[i-1][j],grid[i][j-1])
return grid[m-1][n-1]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: