剑指offer题解C++【8】跳台阶

来源:互联网 发布:乐视网络高清机顶盒 编辑:程序博客网 时间:2024/05/23 01:19

题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

解题思路

对于n级台阶,假设有arr[n]种跳法;
1. 如果第一次跳1阶,那么总共有arr[n-1]种跳法;
2. 如果第一次跳2阶,那么总共有arr[n-2]种跳法;
3. 结合1,2,那么arr[n]=arr[n-1]+arr[n-2]
本题其实是斐波那契数列问题。

代码

class Solution {public:    int jumpFloor(int number) {        if (number <= 0)            return 0;        vector<int> arr(number + 1, 1);        for (int i = 2; i <= number; i++){            arr[i] = arr[i - 1] + arr[i - 2];        }        return arr[number];    }};
原创粉丝点击