天天看點

大廠學苑内功夯實全政策

題目描述:有 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步)