题解 | #跳台阶#

跳台阶

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);
    }
};

全部评论

相关推荐

06-13 10:15
门头沟学院 Java
想去夏威夷的大西瓜在...:我也是27届,但是我现在研一下了啥项目都没有呀咋办,哎,简历不知道咋写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务