题解 | #跳台阶#
跳台阶
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); } };