题目描述
你在爬楼梯,需要n步才能爬到楼梯顶部
每次你只能向上爬1步或者2步。有多少种方法可以爬到楼梯顶部?
class Solution {
public:
/**
*
* @param n int整型
* @return int整型
*/
int climbStairs(int n) {
// write code here
// f(n) = f(n-1) + f(n-2)
// f(1) = 1, f(2) = 2
if(n < 3){
return n;
}
int pre = 2, pre_pre = 1;
int result;
for(int i = 3; i <= n; i++){
result = pre + pre_pre;
pre_pre = pre;
pre = result;
}
return result;
}
};
原因
- 没有考虑n=0,1,2的情况