题目:
机器人位于一个 m x n 网格的左上角, 在下图中标记为“Start” (开始)。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角,在下图中标记为“Finish”(结束)。
问有多少条不同的路径?
例如,上图是一个3 x 7网格。有多少可能的路径?
注意: m 和 n 的值均不超过 100。
分析:
- 动态规划问题
- 对于任意点在右边界和下边界的点移动到目标位置,均有1条路径
- 对于非2中的情况f(x,y) = f(x+1,y) + f(x,y+1)
代码:
class Solution(object):
def uniquePaths(self, m, n):
"""
:type m: int
:type n: int
:rtype: int
"""
def move(x,y,m = m,n = n):
if x == m - 1 or y == n - 1:
return 1
else:
return move(x + 1,y) + move(x,y + 1)
return move(0,0,m,n)
思考:
- 输入23,12时计算超时