其他分享
首页 > 其他分享> > leetcode 70 爬楼梯方法数 (本质和求第n个菲波那切数是一样的)

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