遞迴
乙隻青蛙一次可以跳上 1 級台階,也可以跳上 2 級。求該青蛙跳上乙個 n 級的台階總共有多少種跳法(先後次序不同算不同的結果)。
當 n = 1 時,有 1 種跳法
當 n = 2 時,有 2 種跳法
當 n = 3 時,有 3 種跳法
跳 n 階台階,可以先跳 1 階台階,再跳 n-1 階台階;或者先跳 2 階台階,再跳 n-2 階台階。
於是可以得到以下遞推公式
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 = 1
n = 2
n > 2
使用遞迴
public
class
solution
return
jumpfloor
(target-1)
+jumpfloor
(target -2)
;}}
使用迭代
public
class
solution2
int pre1 =1;
int pre2 =2;
int result =0;
for(
int i =
3; i <= target; i++
)return result;
}}
劍指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級台階,那麼第一步就有兩種情況,跳一步,跟跳兩步。情況一 跳一步,那麼接下去的就...