不同路徑(leetcode)

2021-10-02 12:32:42 字數 1121 閱讀 2856

題目:物體怎樣從左上角移動到右下角,其中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 解釋 從左上角...