[タイトル] 70. LeetCodeブラシ階段

あなたは階段を登っていると仮定し、あなたは屋根に到達するためのnを必要としています。

あなたは、1つのまたは2つのステップを登ることができるたびに、あなたはそれが屋根に登ることができますどのように多くの異なる方法がありますか?

暴力行為(再帰的に):

def climbStairs(n):
    return climb_Stairs(0, n)

def climb_Stairs(i, n):
    if i > n:
        return 0
    if i == n:
        return 1
    return climb_Stairs(i+1, n) + climb_Stairs(i+2, n)

 上記の公式の説明では、以下の溶液は、AC上のキャッシュを追加ネチズンのこぎりです

from functools import lru_cache

class Solution:
    @lru_cache(10**8)
    def climbStairs(self, n):
        """
        :type n: int
        :rtype: int
        """

        if n == 1:
            return 1
        elif n == 2:
            return 2
        else:
            return self.climbStairs(n - 1) + self.climbStairs(n - 2)

 

公開された83元の記事 ウォン称賛14 ビュー30000 +

おすすめ

転載: blog.csdn.net/weixin_38121168/article/details/104195640