天天看点

大厂学苑内功夯实全策略

题目描述:有 N 阶楼梯,每次可上一阶或两阶,求有多少种上楼梯的方法

先来分析下这个问题:

当N=1时,这个很好理解,只能跨1步这一种了

当N=2时,你每次可以跨1步或2步,那就是走2步或走两个1步

当N=3时,因为你可以跨1步或2步,那你在台阶1或2都能行。要计算到台阶1有多少种走法,到台阶2有多少种走法,然后2种相加,依次逆推。

当N=4时,你在台阶2或3都能行,计算到台阶2有多少种走法,到台阶3有多少种走法,然后2者相加,依次逆推。

总结如下:你会发现,这是斐波拉切数列,使用递归出现重复计算问题,所以选择动态规划算法。

<col>

层数

公式

种数

1

f(1)=1

2

f(2)=2

3

f(3)=f(1)+f(2)

4

f(4)=f(2)+f(3)

5

第三层:3种(在第一层走2步或在第二层走1步)

第四层:5种(在第二层走2步或在第三层走1步)