力扣日記 064 最小路徑和 動態規劃

2021-10-02 16:34:18 字數 1102 閱讀 3420

動態規劃:不同路徑i,不同路徑ii

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

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

示例:輸入:[

[1,3,1],

[1,5,1],

[4,2,1]]

輸出: 7

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

易知思路與力扣062和063類似。

1、第一行的每乙個數字都是之前數字的和。

2、第一列的每乙個數字也是之前數字的和。

3、從dp[1][1]開始,每乙個格仔的數字都有兩種可能,取最小值加和即可。

class

solution

:def

minpathsum

(self, grid: list[list[

int]])

->

int:

for j in

range(1

,len

(grid[0]

)): grid[0]

[j]+=grid[0]

[j-1

]for i in

range(1

,len

(grid)):

grid[i][0

]+=grid[i-1]

[0]for i in

range(1

,len

(grid)):

for j in

range(1

,len

(grid[0]

)): grid[i]

[j]+=

min(grid[i-1]

[j],grid[i]

[j-1])

return grid[-1

][-1

]

執行用時 :96 ms, 在所有 python3 提交中擊敗了95.08%的使用者

記憶體消耗 :14.8 mb, 在所有 python3 提交中擊敗了47.75%的使用者

力扣64 最小路徑和

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

力扣64 最小路徑和

給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。示例 輸入 1,3,1 1,5,1 4,2,1 輸出 7 解釋 因為路徑 1 3 1 1 1 的總和最小。我一開始的想法是正向思路,從起點開始,每個點都有兩種後...

64 最小路徑和 力扣(LeetCode)

給定乙個包含非負整數的 m x n 網格,請找出一條從左上角到右下角的路徑,使得路徑上的數字總和為最小。說明 每次只能向下或者向右移動一步。示例 輸入 1,3,1 1,5,1 4,2,1 輸出 7 解釋 因為路徑 1 3 1 1 1 的總和最小。同 不同路徑 一題思路相同,採用動態規劃,動態轉換方程...