思路: 就是利用动态规划,每一给dp[][]存储的是到达该点的路径总数,具体思路我写在了代码里
因为方向只能向左向下,所以二重循环遍历二维数组是合理的
class Solution {
public int uniquePaths(int m, int n) {
//思路:
int [][]dp = new int[m][n];//dp当然存的是到该点的路径数
if(m == 0 || n == 0) return 1;
dp[0][0] = 1;
for(int i = 0 ; i < m; i ++)
{
for(int j = 0; j < n; j++)
{
if(i > 0)
dp[i][j] += dp[i - 1][j]; //如果上面有路当然要加上上面的路径数
if(j > 0)
dp[i][j] += dp[i][j - 1]; //如果左面有路当然要加上上面的路径数
}
}
return dp[m - 1][ n - 1];
}
}