62 不同路徑

2021-09-11 10:24:40 字數 809 閱讀 8301

乙個機械人位於乙個 m x n 網格的左上角 (起始點在下圖中標記為「start」 )。

機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角(在下圖中標記為「finish」)。

問總共有多少條不同的路徑?

思考:是一道動態規劃的題目,可以看出圖中黑線部分上面,若是走最上面一行/最左邊一列的位置,只可能是沿著最上面一直向右走/沿著最左邊一直向下走,所以走法只有一種;然而黑線的右下方,走的方法就等於它正上方和左側的走法之和。

動態規劃的出發點:列舉不是很理想,列舉沒有利用題目的一些性質。

此題中,若直接一一枚舉每一條路徑,就沒有利用題目中說的「機械人每次只能向下或者向右移動一步」

思考清楚三個問題:

1、確定動態規劃陣列dp中dp[i]代表什麼狀態?

代表走到當前位置的路徑數目

2、確定每兩個相鄰狀態之間有什麼聯絡?dp[i] 和 dp[i-1]?

dp[i][j] = dp[i-1][j] + dp[i][j-1];

3、dp陣列當中的dp[0]要會使用,可以減少邊界條件的判定。

class solution 

for(int j = 1;j < n;j++)

for(int i = 1;i < m;i++)

}return dp[m-1][n-1];}};

62 不同路徑

一 題目 機械人位於乙個 m x n 網格的左上角,在下圖中標記為 start 開始 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角,在下圖中標記為 finish 結束 問有多少條不同的路徑?例如,上圖是乙個3 x 7網格。有多少可能的路徑?注意 m 和 n 的值均不超過 100。二...

62 不同路徑

乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?例如,上圖是乙個7 x 3 的網格。有多少可能的路徑?說明 m 和 n 的值均不超過 100。示例 ...

62 不同路徑

乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?例如,上圖是乙個7 x 3 的網格。有多少可能的路徑?說明 m 和 n 的值均不超過 100。示例 ...