牛客網《劍指Offer》(8)跳臺階

題目描述

一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。

題目分析

此題其實和前一題相似,首先分析一下。假設共有10級臺階,且10級臺階的跳法爲f(10)。那麼就有以下兩種場景:

1、最後一次跳了兩級:第八級直接跳到第十級。

2、最後一次跳了一級:第九級直接跳到第十級

即f(10) = f(8) + f(9),這不就是斐波那契數列的遞推公式嗎?唯一的區別是f(2)= 2,而不是1。

class Solution {
public:
    int jumpFloor(int number) {
     //同上,f(n) = f(n-1) +f(n+1)  
        if(number <= 2)
            return number;
        else
            return jumpFloor(number-1) + jumpFloor(number-2);
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章