解法:记忆化搜索+递归
i j 表示开始位置,m - 1,n - 1表示结束位置
class Solution {
int[][] memo;
public int uniquePaths(int m, int n) {
memo = new int[m][n];
int[][] nums = new int[m][n];
int ans = dfs62(nums,0,0,m - 1,n - 1);
return ans;
}
private int dfs62(int[][] nums, int i, int j,int m,int n) {
if(i >m ||j > n){
return 0;
}
if(i == m && j == n){
return 1;
}
if(memo[i][j] != 0){
return memo[i][j];
}
int ans1 = dfs62(nums,i + 1,j,m,n);
int ans2 = dfs62(nums,i,j + 1,m,n);
memo[i][j] = ans1 + ans2;
return ans1 + ans2;
}
}