劍指offer演算法8 跳臺階(JAVA)
阿新 • • 發佈:2019-02-07
這個問題歸根結底還是一個費布拉奇數列,仔細找一下規律即可,剛開始做的時候我是直接寫出前六個數的結果來找規律的。
一級臺階: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);
}
}