题解 | #跳台阶#

跳台阶

https://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4

class Solution {
  public:
    //dp[i]:i代表爬几层楼梯,dp[i]代表爬i层楼梯一共有几种方法
    //递推公式:dp[i]可由dp[i-1]爬一步,dp[i-2]跨两步这两种得到,因此和斐波那契的公式一样。
    //初始化:dp[0]不作讨论,dp[1]=1,dp[2]=2,从i=3开始递推
    //遍历顺序:从前往后
    int climbStairs(int n) {
        vector<int>dp = {1, 2};
        if (n == 1)
            return 1;
        if (n == 2)
            return 2;
        for (int i = 3; i <= n; i++) {
            int sum = dp[0] + dp[1];
            dp[0] = dp[1];
            dp[1] = sum;
        }
        return dp[1];
    }
    int jumpFloor(int number) {
        return climbStairs(number);
    }
};

全部评论

相关推荐

11-09 01:22
已编辑
东南大学 Java
高级特工穿山甲:羡慕,我秋招有家企业在茶馆组织线下面试,约我过去“喝茶详谈”😢结果我去了发现原来是人家喝茶我看着
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务