(0,0)到(m-1,n-1),只能向下或向右。求走法的个数。
整个路径必定要m-1向下,n-1向右,即m-1+n-1个空位中选出m-1个进行向下,即Cm-1m+n-2,此法待实现。
1 class Solution { 2 public: 3 int uniquePaths(int m, int n) { 4 vector<vector<int>> dp(m, vector<int>(n, 0)); 5 //dp[i][j] = dp[i-1][j] + dp[i][j-1] 6 for(int i = 0;i<m;++i) dp[i][0] = 1; 7 for(int i = 0;i<n;++i) dp[0][i] = 1; 8 for(int i = 1;i<m;++i) 9 for(int j = 1;j<n;++j) 10 dp[i][j] = dp[i-1][j] + dp[i][j-1];//该点左边和上边的方法之和 11 return dp[m-1][n-1]; 12 } 13 };
原文:http://www.cnblogs.com/co0oder/p/5188481.html