https://leetcode-cn.com/problems/unique-paths/

Idea

因为机器人只能向下或者向右走
所以很明显 边界的路径数都是1
列出状态转移方程
Unique Paths - 图1

就可以写出代码

PS:因为只需要保存dp[i-1][j]和 dp[i][j-1]的状态 也就是遍历了上一行之后,上上一行可以不要
空间还可以继续优化

Code

  1. public static int uniquePaths(int m, int n) {
  2. int[][] dp=new int[n][m]; //n行m列
  3. //机器人从 00 开始 要走到n-1 m-1 有多少种不同的路径
  4. for(int i=0;i<n;i++)
  5. dp[i][0]=1;
  6. for(int i=0;i<m;i++)
  7. dp[0][i]=1;
  8. for(int i=1;i<n;i++)
  9. for(int j=1;j<m;j++)
  10. {
  11. dp[i][j]=dp[i-1][j]+dp[i][j-1];
  12. }
  13. return dp[n-1][m-1];
  14. }