Climbing Stairs
2015-03-09 09:37 笨笨的老兔子 阅读(130) 评论(0) 编辑 收藏 举报爬楼梯,一次爬一层或两层,要爬n层,有几种方法
本题有一个简单的递推式:
注意点:
- 注意n的边界
- 注意不要使用递归求解,会爆栈以及浪费大量时间
class Solution {
public:
int climbStairs(int n) {
if (n < 0)
return 0;
if (n <= 2)
return n;
int a1 = 1, a2 = 2;
int res = 0;
for (size_t i = 3; i <= n; i++)
{
res = a1 + a2;
a1 = a2;
a2 = res;
}
return res;
}
};