解:
class Solution {
public:
int uniquePaths(int m, int n) {
vector<vector<int> > dp(m,vector<int> (n));
for(int i=0;i<m;i++){
for(int j=0;j<n;j++){
if(i==0||j==0) dp[i][j]=1;
else dp[i][j]=dp[i-1][j]+dp[i][j-1];
}
}
return dp[m-1][n-1];
}
};
递归
int uniquePaths(int m, int n){ //输入位置,返回可能的路径条数
if(m==1||n==1) return 1; //跑到边上去,只有一种走法了
return uniquePaths(m-1,n)+uniquePaths(m,n-1);
}