假设你正在爬楼梯。需要 n
阶你才能到达楼顶。
每次你可以爬 1
或 2
个台阶。你有多少种不同的方法可以爬到楼顶呢?
斐波那契数列(找规律)
class Solution {
public:
int climbStairs(int n) {
// int a[n + 1];
// a[0] = 1,a[1] = 1;
// for(int i = 2; i <= n; i ++ )
// {
// a[i] = a[i - 1] + a[i - 2];
// }
// return a[n];
int a = 1,b = 1,ans = 0;
for(int i = 2; i <= n; i ++)
{
ans = a + b;
a = b;
b = ans;
}
return b;
}
};