每天一道劍指offer-牛客網跳台階
- 2019 年 10 月 4 日
- 筆記
昨天的題解
題目
每天一道劍指offer-牛客網跳台階 來源:牛客網對應專題
題目詳述
一隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上一個n級的台階總共有多少種跳法(先後次序不同算不同的結果)。
題目詳解
思路
- 是劍指offer思路,每次使用兩個變數a,b來計算下一個數的值sum,然後a,b,sum分別是斐波那契數列中的三個數,那麼就令a=b,b=sum,這樣a和b就往下移動了一個位置,再計算sum就是滴4個數了,重複這個過程即可。
程式碼
public class Solution { public int JumpFloor(int target) { if(target == 1) return 1; if(target == 2) return 2; int a = 1; int b = 2; int sum = a + b; for(int i=3;i<=target;i++) { sum = a + b; a = b; b = sum; } return sum; } }
程式碼講解
- 3-6行就是初始值target的個數為1或者,直接返回當前結果
- 10-15行就是計算 類斐波那契數列的下一個數,其中i用來統計計算出了幾個數,循環終止條件。