問題:乙隻青蛙一次可以跳上1級台階,也可以跳上2級,求該青蛙跳上乙個n級的台階總共有多少種跳法。
思路:當n=1時,總跳法m = 1;
當n=2時,總跳法m = 2
當n=3時,假設這只青蛙只差一步就能跳到第3階,那它現在就兩種情況,要麼在第1階,要麼在第2階,那青蛙跳上第三階的總跳法就應該是這兩種之和,即m = 1+2 (青蛙到達第1階有1種方法,到達第2階有2種方法)。
同理,可知n>=3時,m = f(n) = f(n-1) + f(n-2); 類似於斐波拉契數列的第n項。
具體**:(c++)
class solution:
public:
int jumpfloor(int num)
return cur;
}
《劍指offer》 跳台階問題
本文演算法使用python3實現 1 當 n 0 時,返回0 2 當 n 1 時,只有一種跳法 跳1級台階。3 當 n 2 時,有兩種跳法 a 跳1級再跳1級 b 直接跳2級。4 當 n 3 時,我們只考慮最後一步的情況 a 當最後一步只跳1級時,f 3 f 3 1 b 當最後一步直接跳2級時,f ...
《劍指Offer》之跳台階
例1 題目描述 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 分析 本題可以用普通的遞迴來解,但是會超時,所以可以用能過儲存資料的dp來解決,狀態轉移方程為 dp j dp j 1 dp j 2 include include u...
劍指offer 跳台階
跳台階1 題目 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。思路 遞迴思想 可以理解為前面m步的情況加上最後一步的情況,前面m步理解為,m 1步加上最後一步的情況。最後一步分為2中情況,上1級和上2級。如下 class solution 跳台階2 題目 ...