1. 程式人生 > >劍指offer演算法8 跳臺階(JAVA)

劍指offer演算法8 跳臺階(JAVA)

這個問題歸根結底還是一個費布拉奇數列,仔細找一下規律即可,剛開始做的時候我是直接寫出前六個數的結果來找規律的。

一級臺階:1種 fib(1)=1 
二級臺階:2種 fib(2)=2 
三級臺階:3種 fib(3)=fib(1)+fib(2)=3 
四級臺階:5種 fib(4)=fib(2)+fib(3)=5 
五級臺階:8種 fib(5)=fib(3)+fib(4)=8 
六級臺階:13種 fib(6)=fib(4)+fib(5)=13

現在看出規律了吧,fib(n)=fib(n-1)+fib(n-2),fib(1)=1,fib(2)=2。 
java程式碼如下所示(直接在main函式中呼叫即可):

public class Solution {
    public int JumpFloor(int target) {
        if(target==0)
            return 0;
        if(target==1)
            return 1;
        if(target==2)
            return 2;
        return JumpFloor(target-1)+JumpFloor(target-2);
    }
}