剑指 Offer-JZ8-斐波那契数列

题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

解题思路

这道题好像大二上学期在《数据结构与算法》课讲到“递归”的章节有提到,隐隐约约记得解题思路好像是:要跳上 n 级台阶,要么是从 n-1 级台阶往上跳1级,要么是从 n-2 级台阶往上跳2级。虽然只记得隐隐约约的印象,但我们先开始编写代码吧。

实现

class Solution {
public:
    int jumpFloor(int number) {
        // 首先,递归算法需要有一个使递归终止的条件
        if(number == 1){
            return 1;
        }
        if(number == 2){
            return 2;
        }
        // 递归体
        else{
            return jumpFloor(number - 1) + jumpFloor(number - 2);
        }
    }
};

运行结果

运行时间:529ms
占用内存:604k

你可能感兴趣的:(剑指offer)