爬楼梯

假设你正在爬楼梯。需要 n 步你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

题解:

斐波那契

f[n]=f[n-1]+f[n-2] 注意复杂度

 1 class Solution {
 2 public:
 3     int climbStairs(int n) {
 4         int a[1005];
 5         a[0]=1;
 6         a[1]=1;
 7         a[2]=2;
 8         for(int i = 2;i<=n;i++){
 9             a[i]=a[i-1]+a[i-2];
10         }
11         return a[n];
12     }
13 };

猜你喜欢

转载自www.cnblogs.com/cwfzzz/p/9010012.html