LintCode_114 不同的路径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LintCode_114 不同的路径相关的知识,希望对你有一定的参考价值。

题目

有一个机器人的位于一个M×N个网格左上角(下图中标记为‘Start‘)。

机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角(下图中标记为‘Finish‘)。
问有多少条不同的路径?

 

 注意事项

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     }
View Code

 

以上是关于LintCode_114 不同的路径的主要内容,如果未能解决你的问题,请参考以下文章

114 不同的路径

114. 不同的路径(dp动态规划)

LintCode 115. 不同的路径 II

114. 不同的路径

lintcode_75.寻找峰值

lintcode:二叉树的所有路径