标签:
题目
有一个机器人的位于一个M×N个网格左上角(下图中标记为‘Start‘)。
n和m均不超过100
样例
1,1 | 1,2 | 1,3 | 1,4 | 1,5 | 1,6 | 1,7 |
2,1 | ||||||
3,1 | 3,7 |
以上3 x 7的网格中,有多少条不同的路径?
思路
dp的思路来解决
dp[0][j] = 1;
dp[i][0] = 1;
dp[i][j] = dp[i-1][j] + dp[i][j-1];
空间复杂度可以降低到O(n)
dp[i] = dp[i] + dp[i-1];
C++代码
1 int uniquePaths(int m, int n) { 2 // wirte your code here 3 vector<int> dp(n,1); 4 for(int i = 1; i < m; ++i) 5 { 6 for(int j = 1; j < n; ++j) 7 { 8 dp[j] += dp[j - 1]; 9 } 10 } 11 return dp[n - 1]; 12 }
标签:
原文地址:http://www.cnblogs.com/Smallhui/p/5540609.html