自己写的,递归
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]
标签:契数,return,数列,self,Leedcode,斐波,Fibonacci,fib,memo From: https://www.cnblogs.com/yyyjw/p/18208163