題目:物體怎樣從左上角移動到右下角,其中1表示有障礙,不能行走。
思路:
知道整個方框的行和列。
對第一行和第一列進行填充1,當碰到1(障礙)填充0。
本題可以被視為乙個動態規劃的問題,從上到下,從左到右,其中到達乙個終點的路徑總是左邊路徑**+**上面路徑。 即:
d p[
i][j
]=dp
[i−1
][j]
+dp[
i][j
−1]dp[i][j] = dp[i-1][j] + dp[i][j-1]
dp[i][
j]=d
p[i−
1][j
]+dp
[i][
j−1]
**:
class
solution
//number of ways of reaching the starting cell = 1.
obstaclegrid[0]
[0]=
1;//filling the values for the first column
for(
int i =
1;i < r; i++
)//filling the values for the first row
for(
int i =
1; i
)//starting from cell(1,1) fill up the values
//no. of ways of reaching cell[i][j] = cell[i-1][j] + cell[i][j-1]
from above and left.
for(
int i=
1;i)else}}
return obstaclegrid[r-1]
[c-1];
}}
不同路徑(LeetCode)
乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?例如,上圖是乙個7 x 3 的網格。有多少可能的路徑?說明 m 和 n 的值均不超過 100。示例 ...
leetcode不同路徑
1.深度優先搜尋 從finish點開始,往回走,每次是往上走,往右走,當回到0,0點時,路徑數量加1 如下 class solution void dfs int m,int n,int r,int c 但是這種方法可能會超時 2.利用數學公式 地圖矩陣為m行,n列,從左上角到右下角一共需要走m n...
LeetCode 不同路徑
乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?示例 1 輸入 m 3,n 7 輸出 28 示例 2 輸入 m 3,n 2 輸出 3 解釋 從左上角...