第一次直接递归函数,超时
第二次使用数组来记录,通过
class Solution {
public:
int climbStairs(int n){
int a[1000];
memset(a,0,sizeof(a));
a[0]=1;
a[1]=1;
if(n<2){
return a[n];
}else{
for(int i=2;i<=n;i++){
a[i]=a[i-1]+a[i-2];
}
return a[n];
}
}
};
但是缺陷在于耗空间,可以多设几个变量循环赋值,因为只要最后一个数。
后面看到大佬有直接写斐波那契数列通项公式的。。。
我怎么没有想到(微笑)
不过尝试了一下,时间和空间反而没有上面的效果好,猜想可能是math.h包里的函数比较费时费力。