思路:动态规划
重点:问题分解
因为只能向右或者向下移动,那么第一行和第一列中的每一格都设为1,其余格的值都等于M【i,j】 = M【i-1,j】+M【i,j-1】
代码:
public int uniquePaths(int m, int n) {
int[][] M = new int[m][n];
for(int i = 0; i < m;i ++){
for(int j = 0;j < n;j ++){
if(i == 0 || j ==0){
M[i][j] = 1;
}else{
M[i][j] = M[i - 1][j] + M[i][j-1];
}
}
}
return M[m-1][n-1];
}