思路:
这道题我们可以用动态规划来做,如图:
当然还有另外一种更快的做法,那就是排列组合的方法来做,具体看图:
代码1:
class Solution {
public:
int uniquePaths(int m, int n) {
vector<vector<int> > q(m,vector<int>(n,0));
for(int i=0;i<m;++i){
q[i][0] = 1;
}
for(int j=0;j<n;++j){
q[0][j] = 1;
}
for(int i=1;i<m;++i){
for(int j=1;j<n;++j){
q[i][j] = q[i-1][j] + q[i][j-1];
}
}
return q[m-1][n-1];
}
};
代码2:
class Solution {
public:
int uniquePaths(int m, int n) {
long long ans = 1;
for (int x = n, y = 1; y < m; ++x, ++y) {
ans = ans * x / y;
}
return ans;
}
};