假设你正在爬楼梯。需要 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 };