leetcode 63不同路徑2

2021-10-05 02:06:33 字數 892 閱讀 9482

乙個機械人位於乙個 m x n 網格的左上角 (起始點在下圖中標記為「start」 )。機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角(在下圖中標記為「finish」)。現在考慮網格中有障礙物。那麼從左上角到右下角將會有多少條不同的路徑?

說明:m 和 n 的值均不超過 100。

示例 1:

輸入:

[ [0,0,0],

[0,1,0],

[0,0,0]

]輸出: 2

解釋:3x3 網格的正中間有乙個障礙物。

從左上角到右下角一共有 2 條不同的路徑:

1. 向右 -> 向右 -> 向下 -> 向下

2. 向下 -> 向下 -> 向右 -> 向右

方法:參考62題,稍作修改。

第一處修改,在設初值時,第一列和第一行,遇到1直接返回,因為後面的不會在走到。

第二處修改,在動態轉移方程前判斷當前格是否是1,是1直接設定為0.

需要注意的是這裡要設定為 long long 型別,int會溢位。

class

solution

for(

int i =

0; i < m; i++

)for

(int i =

1; i < m; i++

)for

(int j =

1; j < n; j++)if

(obstaclegrid[i]

[j]==0)

res[i]

[j]= res[i-1]

[j]+ res[i]

[j-1];

return res[m-1]

[n-1];

}};

leetcode 63 不同路徑(2)

乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 現在考慮網格中有障礙物。那麼從左上角到右下角將會有多少條不同的路徑?小結 動態規劃。這道題增加了障礙。通用模式 class s...

leetcode63 不同路徑2

乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 現在考慮網格中有障礙物。那麼從左上角到右下角將會有多少條不同的路徑?設定乙個與網格同樣大小的dp矩陣,其中dp i j 表示有...

LeetCode63 不同路徑2

乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 現在考慮網格中有障礙物。那麼從左上角到右下角將會有多少條不同的路徑?一樣的動態規劃,但是多了障礙物,其實只用把障礙物置為0就可...