思路:最上面和最左侧的行和列 只能是从左或上面的 格子移动到。其他格子可以是从其上面或者左边的格子移动到。
import java.util.*;
public class Solution {
/**
*
* @param m int整型
* @param n int整型
* @return int整型
*/
public int uniquePaths (int m, int n) {
// write code here
if(0 == m || 0 == n){
return 0;
}
//----------------------------特殊情况返回
int[][] data = new int[m][n];//----------定义二维数组
for(int i = 0; i < m; i++){
data[i][0] = 1;
}
for(int i = 0; i < n; i++){
data[0][i] = 1;
}
//----------------------------初始边界条件
for(int i = 1; i < m; i++){
for(int j = 1; j < n; j++){
data[i][j] = data[i-1][j]+data[i][j-1];
}
}
//----------------------------递推关系 只能是从上面 或者 是从下面下来的
return data[m-1][n-1];
}
}