劍指offer 8 跳台階

2021-09-14 05:14:55 字數 880 閱讀 6602

時間限制:1秒 空間限制:32768k

題目描述

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

思路:典型的斐波那契演算法思路,

1.假設當有n個台階時假設有f(n)種走法。

2.青蛙最後一步要麼跨1個台階要麼跨2個台階,只有這兩種情況。

3.當最後一步跨1個台階時即之前有n-1個台階,根據1的假設即n-1個台階有f(n-1)種走法。

4. 當最後一步跨2個台階時即之前有n-2個台階,根據1的假設即n-2個台階有f(n-2 )種走法。

5.顯然n個台階的走法等於前兩種情況的走法之和即f(n)=f(n-1)+f(n-2)。

6.找出遞推公式後要找公式出口,即當n為1、2時的情況,顯然n=1時f(1)等於1,f(2)等於2

7可得公式為:.f(n

)=

1,& \text\\ 2,& \text\\ f(n-1)+f(n-2),& \text \end

f(n)=⎩

⎪⎨⎪⎧

​1,2

,f(n

−1)+

f(n−

2),​

n=1n=2

(n>2,n

為整數)

​**如下:

public

class

solution

else

if(target ==1)

else

if(target ==2)

else

}}

劍指offer 8 跳台階

題目描述 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 思路 由題可知,青蛙跳台階,跳上n階,可以一階一階的跳,也可以兩階兩階的跳,還可以交叉來。如果函式f n 表示跳到n階的方法,那麼如果最後一次跳一階,則前面有f n 1 種,如果最後是跳2階,則前面有...

劍指Offer 8 跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。coding utf 8 class solution def jumpfloor self,number write code here if number 0 return 0 a 1 b 1 for in...

劍指offer8 跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。假設,一級台階,有f 1 種方法,二級有f 2 種,以此類推,n級有f n 種方法。可以看出,f 1 1 f 2 2。那麼,假設n級台階,那麼第一步就有兩種情況,跳一步,跟跳兩步。情況一 跳一步,那麼接下去的就...