Leedcode-斐波那契数

自己写的,递归

复制代码
class Solution:
    def fib(self, n: int) -> int:
        # 如果 n 是 0,则返回 0,因为这是 Fibonacci 数列的定义
        if n == 0:
            return 0
        # 如果 n 是 1,则返回 1,因为这是 Fibonacci 数列的定义
        elif n == 1:
            return 1
        # 对于其他情况,递归地调用 fib 函数,计算 Fibonacci 数列的前两个数并相加
        else:
            return self.fib(n - 2) + self.fib(n - 1)
复制代码

 gpt优化,采用记忆优化:

复制代码
class Solution:
    def __init__(self):
        # 初始化一个字典来存储已经计算过的 Fibonacci 数列值
        self.memo = {}

    def fib(self, n: int) -> int:
        # 如果 n 已经在 memo 中,直接返回其值
        if n in self.memo:
            return self.memo[n]

        # 基本情况:如果 n 是 0 或 1,直接返回 n
        if n == 0:
            return 0
        elif n == 1:
            return 1

        # 递归计算 Fibonacci 数列值,并存储在 memo 中
        self.memo[n] = self.fib(n - 2) + self.fib(n - 1)
        return self.memo[n]
复制代码

 

posted @   Junior_bond  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示