64 最小路徑和

2021-09-27 07:35:01 字數 1108 閱讀 9667

題目描述:

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

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

知識點:

動態規劃:

多階段決策最優解模型,每階段都對應一組狀態

狀態轉移方程構造方式:

遞迴+備忘錄(反向遞迴)

迭代遞推(正向迭代)

思路和**:

狀態轉移方式:採用正向迭代

def

minpathsum

(grid)

:"""

狀態轉移方式:採用正向迭代

狀態轉移方程:

當左邊和上邊都不是矩陣邊界時:dp[i][j]=min(dp[i−1][j],dp[i][j−1])+grid[i][j]

當只有左邊是矩陣邊界時:dp[i][j]=dp[i][j−1]+grid[i][j]

當只有上邊是矩陣邊界時:dp[i][j]=dp[i−1][j]+grid[i][j]

:param grid:

:return:

"""for i in

range

(len

(grid)):

for j in

range

(len

(grid[0]

)):if i !=

0and j !=0:

grid[i]

[j]=grid[i]

[j]+

min(grid[i-1]

[j],grid[i]

[j-1])

if i ==

0and j !=0:

grid[i]

[j]= grid[i]

[j]+ grid[i]

[j-1

]if i !=

0and j ==0:

grid[i]

[j]= grid[i]

[j]+ grid[i-1]

[j]return grid[-1

][-1

]

64 最小路徑和

給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。示例 輸入 1,3,1 1,5,1 4,2,1 輸出 7 解釋 因為路徑 1 3 1 1 1 的總和最小。用動態規劃可直接解決,dp i j 代表著從 0 0 ...

64 最小路徑和

方法一 動態規劃法 二維 該問題可以通過動態規劃的方法進行求解,動態規劃最主要的是將其動態轉移方程寫出來。由於該每次只能向下和向右移動,故可以知道,對於位置m,n處,到達該點只能通過位置m,n 1處以及位置m 1,n處,故最小的路徑應為二者較小值加當前位置的值,定義dp i j 為位置i,j處的最小...

64 最小路徑和

給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。示例 輸入 1,3,1 1,5,1 4,2,1 輸出 7解釋 因為路徑 1 3 1 1 1 的總和最小。利用動態規劃,二維陣列中每個元素儲存的是走到當前節點的總...