剑指offer:跳台阶

题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
 
思路:一开始看到题,没思路,不知道为什么想到了二叉树.... 看了下题解是斐波那契数列的引申,很妙,从尾部分析。
只能跳一步或者两步,则fn=fn-1 + fn-2 一直递归,直到开始条件012....fn.
 
代码:
class Solution {
public:
    int jumpFloor(int number) {
        //tree
        if(number <= 1) return number;
        if(number == 2) return 2;
        return jumpFloor(number - 1) + jumpFloor(number - 2);
    }
};

 

posted @ 2020-04-13 22:36  葱葱葱茏  阅读(95)  评论(0编辑  收藏  举报