乙個機械人位於乙個 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。示例 ...