62 不同路徑

2022-09-28 05:51:12 字數 1789 閱讀 9846

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

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

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

示例 1:

輸入:m = 3, n = 7

輸出:28

示例 2:

輸入:m = 3, n = 2

輸出:3

解釋:從左上角開始,總共有 3 條路徑可以到達右下角。

1. 向右 -> 向下 -> 向下

2. 向下 -> 向下 -> 向右

3. 向下 -> 向右 -> 向下

示例 3:

輸入:m = 7, n = 3

輸出:28

示例 4:

輸入:m = 3, n = 3

輸出:6

動態規劃問題。

確定dp陣列以及其下標的含義

該題的dp陣列是乙個二維陣列。dp[i,j]表示從(0,0)出發到(i,j)的路徑數

確定遞推公式

題目中表示每一步只能向下或向右移動,所以要走到(i,j)處,只能從從(i,j-1)處向下走一步或從(i-1,j)處向右走一步。所以可以得到遞推公式:dp[i,j] = dp[i,j - 1] + dp[i - 1,j]

dp陣列的初始化

(0, 0)(i, 0)的路徑只有一條,所以dp[i,0] = 1,同理,dp[0,j] = 1

確定遍歷順序

由遞推公式可以看出dp[i,j]是由其上方和其左方推到出來的,所以遍歷順序是從左到右一層一層地遍歷的

舉例推導dp陣列

m=3,n=7時,dp陣列如下所示

時間複雜度:o(m × n)空間複雜度:o(m × n)

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。示例 ...