10剑指OFFER之跳台阶

参考资料:

思路:

斐波那契数列

自己的解法:
class Solution {
public:
    int jumpFloor(int number) {
        if(number<=2)
            return number;
        
        return FibinacciCore(number);
        
    }
    
    int FibinacciCore(int number)
    {
        //从3开始
        int a[256]={0};//全部初始化为0
        a[0] = 0;//跳一级台阶有0种,以下都是
        a[1] = 1;
        a[2] = 2;
        //从头到尾加起来
        for(int i=3;i<=number;i++)
        {
            a[i]=a[i-2]+a[i-1];
        }
        
        return a[number];
    }
    
};
//青蛙跳1级有有1种跳法
//跳2级有2中跳法
//跳3级有3种跳法
//跳4级有5种跳法
//而这就是斐波那契数列
标准答案:
class Solution {
public:
    int jumpFloor(int number) {
        int Result[3] ={0,1,2};
        if(number<=2)
            return Result[number];
        int FiResult = 0;
        int FiOne = 1;
        int FiTwo = 2;
        //利用数学归纳得出是斐波那契数列,从头到尾
        for(int i =3;i<=number;i++)
        {
            FiResult = FiOne+FiTwo;
            FiOne = FiTwo;
            FiTwo = FiResult;
        }
        
        return FiResult;
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容