题解的关键点就是f(x) = f(x-1) + f(x-2)
也就是说第x阶楼梯的种数 是 x-1 和 x-2 阶的总和。
class Solution {
public:
int climbStairs(int n) {
// f(x) = f(x-1) + f(x-2)
if(n==1 || n==2 || n==0){
return n;
}
int f[n+1];
f[0] = 0;
f[1] = 1;
f[2] = 2;
for(int x=3; x<=n;x++){
f[x] = f[x-1] + f[x-2];
}
return f[n];
}
};