leetcode70 爬楼梯-dp

第一次直接递归函数,超时
第二次使用数组来记录,通过

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包里的函数比较费时费力。

猜你喜欢

转载自blog.csdn.net/weixin_41900122/article/details/89765084