64 最小路徑和 動態規劃

2021-10-03 23:09:31 字數 796 閱讀 9039

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

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

示例:輸入:

[  [1,3,1],

[1,5,1],

[4,2,1]

]輸出: 7

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

從左上角開始,到右下角 思路:遍歷每個位置,記錄達到該位置的最小路徑之和

由於邊界只能橫向 or 豎向運動,故先對邊界進行處理;

然後根據計算該位置+min(左邊數值, 上面數值)之和。

返回grid[-1][-1]的值。

class solution:

def minpathsum(self, grid: list[list[int]]) -> int:

m,n=len(grid),len(grid[0])

print(m,n)

for i in range(m):

for j in range(n):

print(grid[i][j])

if i>0 and j>0:

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

elif i>0 and j==0:

grid[i][j] += grid[i-1][j]

elif i==0 and j>0:

grid[i][j] += grid[i][j-1]

return grid[-1][-1]

64 最小路徑和 經典動態規劃題

難度 中等 據說這個月是動態規劃月,真的好多動態規劃題啊 題目描述 解題思路 動態規劃,先定義狀態,就是到這乙個格仔需要經過路徑最小的總和 因為只能往下或者往右走,所以可以先初始化第一行和第一列,這兩個只能由其起點來 然後對於其它位置的節點,要麼是從上面到這裡,要麼是從左邊到這裡,每次都選擇最小的 ...

動態規劃之64 最小路徑和(Medium)

題目描述 給定乙個包含非負整數的 m x n 網格 grid 請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。一句話思路 問題可以看成是求全域性最優解,即從左上角出發到右下角經過的最小路徑和。轉換成區域性最優解即為從左上角到當前位置的最小路徑和。cl...

動態規劃 最小路徑和

給定乙個只含非負整數的m n網格,找到一條從左上角到右下角的可以使數字和最小的路徑。你在同一時間只能向下或者向右移動一步 樣例1 1 3 1 1 5 1 4 2 1 輸出 7 樣例2 1 3 5 9 8 1 3 4 5 0 6 1 8 8 4 0 輸出 12 計算到達當前位置路徑,是在上一步的基礎上...