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

京公网安备 11010502036488号