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 @ 2024-05-23 12:30  Junior_bond  阅读(17)  评论(0)    收藏  举报