剑指Offer算法题-变态青蛙跳台阶

发布于 / 刷题 / 0 条评论

题目描述

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

题解

这道题依然和斐波那契数列大同小异,写一个循环,每次跳不同的阶数就可以了。记得用记忆化搜索

class Solution {
public:
    map<int, int> M;
    int jumpFloorII(int number) {
        if(number <= 0) return 0;
        if(number <= 2) return number;
        if(M[number] != 0) return M[number];
        int ans = 1;
        for(int i = number - 1; i > 0; i--){
            ans += jumpFloorII(i);
        }
        M[number] = ans;
        return ans;
    }
};

转载原创文章请注明,转载自: 斐斐のBlog » 剑指Offer算法题-变态青蛙跳台阶
目前还没有评论,快来抢沙发吧~