题意
从第
0
层阶梯到第
思路
经典的
DP
问题,
dp[i]
表示到第
i
层的方法数,那么要到第
dp[i]=dp[i−1]+dp[i−2]
.因为不想开辟新的内存,所以说手动模拟了,但是思想和
DP
是一样的.
代码
class Solution {
public:
int climbStairs(int n) {
if(n <= 2) return n;
int pre = 1;
int ans = 2;
for(int i = 3; i <= n; i++){
int temp = ans;
ans += pre;
pre = temp;
}
return ans;
}
};