給定乙個包含非負整數的 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 計算到達當前位置路徑,是在上一步的基礎上...