我觉得我有必要把我能写出到递归也贴出来,毕竟很多人搜不到,大佬还拿递归不当回事
递归,输入m和n的时候减一操作
int uniquePaths(int m, int n) {
if(m<0 || n<0)
return 1;
if(0==m)
return uniquePaths(m,n-1);
if(0==n)
return uniquePaths(m-1,n);
return uniquePaths(m,n-1)+uniquePaths(m-1,n);
}
dp
int dp(int m ,int n)
{
vector<vector<int>>a(m,vector<int>(n,0));
a[0][0]=1;
for(int i=0;i<m;++i)
{
for(int j=0;j<n;++j)
{
if(0==i && 0==j)
continue;
else if(i==0)
a[i][j]=a[i][j-1];
else if(0==j)
a[i][j]=a[i-1][j];
else
a[i][j] = a[i-1][j] + a[i][j-1];
}
}
return a[m-1][n-1];
}