技術點16:JSON
阿新 • • 發佈:2020-11-17
一個機器人位於一個 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
提示:
1 <= m, n <= 100
- 題目資料保證答案小於等於
2 * 109
- 陣列
- 動態規劃
題解
public class UniquePaths { /** * TODO 最重要的不懂的時候,畫圖理解,手動畫圖 * 動態轉換方程公式:dp[i][j] = dp[i-1][j] + dp[i][j+1] * 初始值 如果 i == 0 || j == 0 ;dp[i][j] = 1; * */ public int uniquePaths(int m, int n) { int[][] dp = new int[m][n]; for (int i = 0; i < m; i++) { for (int j = 0; j < n ; j++) { if(i == 0 || j ==0){ dp[i][j] = 1; }else{ dp[i][j] = dp[i-1][j] + dp[i][j-1]; } } } return dp[m-1][n-1]; } }