小孩爬楼梯

2018-07-30  本文已影响0人  十二右

一: 一个小孩一次可以走1/2/3级台阶, 10级台阶可以有多少种方法

10 # 动态规划
11 def steps(n: int, m={}) -> int:
12 if n < 0:
13 return 0
14 elif n == 0:
15 return 1
16 else:
17 try:
18 return m[n]
19 except:
20 m[n] = steps(n-1) + steps(n-2) + steps(n-3)
21 return m[n]

说明 : 将计算好的结果存到字典,需要再取,避免反复迭代运行函数 -- 以空间换时间

上一篇下一篇

猜你喜欢

热点阅读