劍指offer刷題(八)跳台階

2021-10-04 01:17:01 字數 581 閱讀 9890

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法(先後次序不同算不同的結果)。

本質上是斐波那契數列。

記跳n級台階的跳法有 f(n) 種,

如果最後一次跳了兩級,那麼一共的跳法是 n-2 級台階的跳法,即 f(n-2),

如果最後一次跳了一級,那麼一共的跳法是 n-1 級台階的跳法,即 f(n-1),

那麼 n 級台階的跳法就有 f(n) = f(n-2) + f(n-1)

我們知道,跳第 0, 1, 2 級台階的跳法分別為 0,1,2,那麼運用迭代的思路,就不難求出 n 級台階的跳法了。

class

solution

:def

jumpfloor

(self, number)

:# write code here

result =[0

,1,2

]for i in

range(3

,number+1)

:2]+ result[i-1]

)return result[number]

劍指Offer刷題筆記 跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。首先我們考慮最簡單的情況。如果只有1級台階,那麼顯然只一種跳法。如果有2級台階,那就有兩種跳法 一種是分兩次跳,每次跳1級 另一種是一次跳2級。接著,我們來討論一般情況。我們把n級台階時的跳法看成是n的函式,記...

《劍指offer》刷題筆記 8 跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 這是一道經典的遞推題目,從第n級台階往回推,由於它可以跳1級台階或者2級台階,所以它上一步必定在第 n 1 或者第 n 2 級台階,也就是說它跳上n級台階的跳法數是跳上n 1和跳上n ...

劍指offer 跳台階

跳台階1 題目 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。思路 遞迴思想 可以理解為前面m步的情況加上最後一步的情況,前面m步理解為,m 1步加上最後一步的情況。最後一步分為2中情況,上1級和上2級。如下 class solution 跳台階2 題目 ...