dp【i】【j】代表從(0,0)出發走到(i,j)位置上有多少種路徑。關於dp陣列的初始化,由於機械人每次只能向右或者向下移動一步。所以第 0 行和第 0 列dp陣列初始化為 1。動態轉移方程:
dp[i][j] = dp[i - 1][j] + dp[i][j - 1],因為dp[i][j]只有這兩個方向過來。遍歷順序,從左上到右下。
1class
solution 11}
12return dp[m-1][n-1
];13
}14 };
時間複雜度為o(m * n) ,空間複雜度o(m * n)
注意上面的dp陣列可以優化為一維陣列,這裡不展開,以後總結下滾動陣列的思想。
直接按照圖的深搜,但是時間會超時
1class
solution
8int uniquepaths(int m, int
n) 11 };
指數級的時間複雜度。
Leetcode 62 不同路徑
乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?例如,上圖是乙個7 x 3 的網格。有多少可能的路徑?說明 m 和 n 的值均不超過 100。示例 ...
leetcode 62 不同路徑
時間複雜度o n2 def uniquepaths m,n 計算路徑的個數 memo 0 for j in range n for i in range m for i in range m for j in range n if i 0 and j 0 memo i j 1 elif j 0 me...
LeetCode 62 不同路徑
乙個機械人位於乙個 m x n 網格的左上角 起始點在下圖中標記為 start 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角 在下圖中標記為 finish 問總共有多少條不同的路徑?例如,上圖是乙個7 x 3 的網格。有多少可能的路徑?說明 m 和 n 的值均不超過 100。示例 ...