动态规划
class Solution {
public:
int uniquePaths(int m, int n) {
vector<vector<int>>dp(m,vector<int>(n,1));
for(int i=1;i<m;i++){
for(int j=1;j<n;j++){
dp[i][j]=dp[i-1][j]+dp[i][j-1];
}
}
return dp[m-1][n-1];
}
};
暴力解(超时)
class Solution {
public:
int out=0;
void dfs(int&m, int&n,int i,int j){
if(i==m&&j==n){
out++;
return;
}
if(i+1<=m)dfs(m,n,i+1,j);
if(j+1<=n)dfs(m,n,i,j+1);
}
int uniquePaths(int m, int n) {
dfs(m,n,1,1);
return out;
}
};