AIpush的博客

船到桥头

LeetCode070 爬楼梯

你正在爬楼梯。需要 n 步你才能到达顶部。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方式可以爬到楼顶呢?

注意:给定 n 将是一个正整数。


思路:这道题乍一看可以用递归的方式,不过提示我NameError: global name 'climbStairs' is not defined还不是很懂要怎么处理

错误答案:

 class Solution(object):
    def climbStairs(self, n):
        """
        :type n: int
        :rtype: int
        """

        if n==0:
            return 0
        elif n==1:
            return 1
        elif n==2:
            return 2
        else:

            return climbStairs(n-1)+climbStairs(n-2)


然后看网上别人的做法,发现爬楼梯法符合斐波那契数列!!!!

于是 正确答案:

class Solution(object):
    def climbStairs(self, n):
        """
        :type n: int
        :rtype: int
        """
        a = 1
        b = 1
        for i in range(n):
            a, b = b, a + b

        return a

我再想想

阅读更多
上一篇LeetCode058 最后一个单词的长度
下一篇LeetCode021 合并两个有序链表
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭