不同路径
动态规划
class Solution { public: int uniquePaths(int m, int n) { if(m <= 1 || n<=1) return 1; vector<vector<int>> dp( m+1 , vector<int>(n+1,0)); dp[1][1] = 1; dp[1][2] = 1; dp[2][1] = 1; for(int i=1 ; i<=m ; i++) { for(int j=1 ; j<=n ; j++) { if(dp[i][j] != 0 ) continue; dp[i][j] = dp[i-1][j] + dp[i][j-1]; // cout<<"i:"<<i<<" j:"<<j<<" dp:"<<dp[i][j]<<endl; } } return dp[m][n]; } };
二刷
class Solution { public: int uniquePaths(int m, int n) { vector<vector<int>> dp(m,vector<int>(n,0)); for(int i=0 ; i<n ;i++) dp[0][i] = 1; for(int i=0 ; i<m ;i++) dp[i][0] = 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]; } };