一、题目内容

image.png

二、题解

解法1:

思路

dp,时间复杂度mn,空间复杂度mn

代码

  1. public class Solution {
  2. public int uniquePaths (int m, int n) {
  3. // write code here
  4. int[][] dp = new int[m][n];
  5. //dp[i][j] = d[i-1][j] + dp[i][j-1]; i>=1,j>=1
  6. for(int i = 0; i<m; i++){
  7. for(int j = 0; j<n; j++){
  8. if(i == 0 || j == 0){
  9. dp[i][j] = 1;
  10. continue;
  11. }else{
  12. dp[i][j] = dp[i-1][j] + dp[i][j-1];
  13. }
  14. }
  15. }
  16. return dp[m-1][n-1];
  17. }
  18. }

解法2:

思路

递归,时间复杂度mn,空间复杂度1

代码

  1. public class Solution {
  2. public int uniquePaths (int m, int n) {
  3. if(m == 1 || n == 1){
  4. return 1;
  5. }
  6. return uniquePaths(m-1,n) + uniquePaths(m,n-1);
  7. }
  8. }