题目描述
解题思路
- 首先我们得到m和n
- 我们构造一个有m和n个元素的二维数组
- 我们双重for循环遍历这个二维数组
- 如果说要到[1][1]这个位置的话,那么只有一种走法
- 如果说是要到i=1的位置的话,那么我们只需要加上左边那个格子到达的距离就好了
- 如果说我们要到j=1的位置的话,那么我们加上上面那个格子到达的距离就好了
- 否则我们加上到上面的距离和到左边的距离
- 返回f[m][n]
代码实现
class Solution {
public:
int uniquePaths(int m, int n) {
int i,j;
int f[110][110];
for(int i=1;i<=m;++i){
for(int j=1;j<=n;++j){
if(i==1&&j==1){
f[i][j]=1;
}else if(i==1){
f[i][j]=f[i][j-1];
}else if(j==1){
f[i][j]=f[i-1][j];
}else{
f[i][j]=f[i-1][j]+f[i][j-1];
}
}
}
return f[m][n];
}
};