假设你正在爬楼梯,需要n阶才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶?
原题好像有多种方法,这里只使用一种递归思想解决,也是斐波那契解决办法。
动态规划:包含最优子结构问题,即当前问题的最优解也可以是子问题最优解之和。
第i阶楼梯可由下面两种情况得到:
1.在第i-1阶向上爬1阶
2.在第i-2阶向上爬2阶
def floor(n):
if n == 1:
return 1
elif n == 2:
return 2
else:
return floor(n - 1) + floor(n - 2)

3136

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



