【算法题】62. 不同路径(LeetCode)
1.题目
下方是力扣官方题目的地址
-
一个机器人位于一个
m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。
问总共有多少条不同的路径?
示例 1:

输入:m = 3, n = 7 输出:28示例 2:
输入:m = 3, n = 2 输出:3 解释: 从左上角开始,总共有 3 条路径可以到达右下角。 1. 向右 -> 向下 -> 向下 2. 向下 -> 向下 -> 向右 3. 向下 -> 向右 -> 向下示例 3:
输入:m = 7, n = 3 输出:28示例 4:
输入:m = 3, n = 3 输出:6提示:
1 <= m, n <= 100- 题目数据保证答案小于等于
2 * 109
2.题解
思路一(公式)
机器人无论怎么走到终点,向下向右的步数是固定的,都是向右n-1格,向下m-1格。
所以我们可以使用组合数,一共走m+n-2次,再其中选出m-1次向下走,其余的自然就是向右走了,所以有:
所以有
C ( m + n − 2 , m − 1 ) C(m+n-2,m-1) C(m+n−2,m−1)
如何计算它呢?
C ( n , k ) = n ! k ! ( n − k ) ! C(n, k) = \frac{n!}{k!(n-k)!}

最低0.47元/天 解锁文章
242

被折叠的 条评论
为什么被折叠?



