每天一道劍指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用來統計計算出了幾個數,循環終止條件。