leetcode 64 最小路徑和

2021-10-03 00:17:13 字數 1214 閱讀 8220

給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。

說明:每次只能向下或者向右移動一步。

示例:

輸入:

[[1,3,1],

[1,5,1],

[4,2,1]

]輸出: 7

解釋: 因為路徑 1→3→1→1→1 的總和最小。

思路:

因為只能往右或者往下走,由此每個網格的最短路徑和由上面網格或者左邊網格決定,推出決策式子為:

dp[i][j] = grid[i][j] + min (dp[i-1][j], dp[i][j-1])

class

solution

(object):

defminpathsum

(self, grid)

:"""

:type grid: list[list[int]]

:rtype: int

"""n =

len(grid)

m =len(grid[0]

) dp =[[

0for i in

range

(m)]

for i in

range

(n)]

for i in

range

(n):

for j in

range

(m):

if i ==

0and j ==0:

continue

elif i ==

0and j !=0:

grid[0]

[j]= grid[0]

[j-1

]+grid[0]

[j]elif i !=

0and j ==0:

grid[i][0

]= grid[i-1]

[0]+ grid[i][0

]else

: grid[i]

[j]= grid[i]

[j]+

min(grid[i-1]

[j], grid[i]

[j-1])

return grid[-1

][-1

]

LeetCode 64 最小路徑和

題目描述 提示幫助 提交記錄 社群討論 閱讀解答 隨機一題 給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。示例 輸入 1,3,1 1,5,1 4,2,1 輸出 7 解釋 因為路徑 1 3 1 1 1 的總和...

LeetCode 64 最小路徑和

給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。示例 輸入 1,3,1 1,5,1 4,2,1 輸出 7 解釋 因為路徑 1 3 1 1 1 的總和最小。以輸入為 3 3 的網格為例,其中 m 3,n 3 1...

LeetCode 64 最小路徑和

題目 給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。示例 輸入 1,3,1 1,5,1 4,2,1 輸出 7 解釋 因為路徑 1 3 1 1 1 的總和最小。解題思路 1 由於路線只向下或者右走,所以在最上...