class Solution { public int uniquePaths(int m, int n) { int dp[][] = new int[m][n]; int i,j,k; for (i = 0; i< m; i++) { dp[i][0] = 1; } for (i = 0; i< n; i++) { dp[0][i] = 1; } for (i = 1; i< m; i++) { for (j = 1; j< n; j++) { dp[i][j] = dp[i-1][j]+dp[i][j-1]; } } return dp[m-1][n-1]; } }
因爲只能往右、往下走,所以到達某格子的路徑數等於到達它上邊一個格子的路徑數+到達它左邊一個格子的路徑數之和。
畫個圖就一目瞭然了。