leetcode 70 爬楼梯方法数 (本质和求第n个菲波那切数是一样的)
作者:互联网
//方法一:递归版
//Time:O(2^n),Space:O(n)
class Solution
{
public:
int climbStairs(int n)
{
if(n==0)
{
return 1;
}
else if(n==1)
{
return 1;
}
else
{
return climbStairs(n-1)+climbStairs(n-2);
}
}
};
//方法二:
//Time:O(n) Space:O(n)
class Solution
{
public:
int climbStairs(int n)
{
if(0==n) return 1;
if(1==n) return 1;
vector<int> ret(n+1,-1);
ret[0]=1;
ret[1]=1;
for(int i=2;i<=n;i++)
{
ret[i]=ret[i-2]+ret[i-1];
}
return ret[n];
}
};
//方法三
//Time:O(n) Space:O(1)
class Solution
{
public:
int climbStairs(int n)
{
if(0==n) return 1;
if(1==n) return 1;
int first=1;
int second=1;
for(int i=2;i<=n;i++)
{
int third=first+second;
first=second;
second=third;
}
return second;
}
};
weixin_42136255 发布了44 篇原创文章 · 获赞 2 · 访问量 657 私信 关注
标签:return,个菲波,Space,int,那切,ret,public,climbStairs,数是 来源: https://blog.csdn.net/weixin_42136255/article/details/103935714