乙個機械人位於乙個 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就可...