题解 | #不同路径的数目(一)#
不同路径的数目(一)
http://www.nowcoder.com/practice/166eaff8439d4cd898e3ba933fbc6358
public int uniquePaths (int m, int n) {
// write code here
//边界情况若在f[0][0]的位置不动就是一种情况
if(m == 0 || n == 0){
return 1;
}
//创建一个二维的数组,来表示方格
int[][] f = new int[m][n];
//从二维数组的行开始计算
for(int i = 0; i < m;i++){
//计算i行的每一列
for(int j = 0;j < n;j++){
//初始条件
if(i == 0 || j == 0){
f[i][j] = 1;
}else{
//最后一步:要么从上边下来,要么从左边过来
//设有x种方式从f[0][0]到f[m-2][n-1]
//设有y种方式从f[0][0]到f[m-1][n-2]
//那么到达f[m-1][n-1]就有x+y种方式
f[i][j] = f[i-1][j] + f[i][j-1];
}
}
}
return f[m-1][n-1];
}

