剑指offer青蛙跳台阶(C++)

跳台阶

https://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4?tpId=13&tqId=11161&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

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

参考文章:https://blog.nowcoder.net/n/ef601ffbb33a42ff963f65364accd5cd?f=comment

递归版本

class Solution{
    public:
        int  jumpFloor(int n)
        {
            if(n<=2) return n;
            return jumpFloor(n-1)+jumpFloor(n-2);
        }
};

自底向上型

class Solution{
public:
    int jumpFloor(int n)
    {
        int a = 1;
        int b = 1;
        for(int i=1;i<n;i++)
        {
            a = a +b;
            b = a - b;
        }
        return a;
    }
}:

动态规划:

class Solution {
public:
    int jumpFloor(int n) {
        vector<int> dp(n+1,0);
        dp[1] = 1;
        dp[2]  =2;
        for(int i=3;i<=n;i++)
        {
            dp[i] = dp[i-1]+dp[i-2];
        }
        return dp[n];
    }
};
全部评论

相关推荐

10-30 23:23
已编辑
中山大学 Web前端
去B座二楼砸水泥地:这无论是个人素质还是专业素质都👇拉满了吧
点赞 评论 收藏
分享
AaronRuan:看到了好多开奖了,不知道为啥自己也有点激动,真的替你们感到高兴啊
点赞 评论 收藏
分享
评论
6
1
分享
牛客网
牛客企业服务