LeetCode in Python 509. Fibonacci Number (斐波那契数)

斐波那契数实现方式有多种方法,最容易理解的为递归法,也可使用动态规划降低时间复杂度,本文给出递归法和动态规划两种方法的代码实现。

示例:

图1 斐波那契数输入输出示例

方法一:递归法

代码:

python 复制代码
class Solution:
    def fib(self, n):
        if n == 0 or n == 1:
            return n
        else:
            return self.fib(n - 1) + self.fib(n - 2)

方法二:动态规划法

代码:

python 复制代码
class Solution:
    def fib(self, n):
        n1, n2 = 0, 1
        for _ in range(n):
            n1, n2 = n2, n1 + n2
        return n1

解释:

1)求f(n)需要计算n-1次,例如计算f(4),需要计算f(4)、f(3)和f(2),故循环n次后取保存上一次计算结果的n1。

相关推荐
炽烈小老头几秒前
【 每天学习一点算法 2025/12/12】回文链表
学习·算法·链表
前端小L几秒前
回溯算法专题(十):二维递归的完全体——暴力破解「解数独」
数据结构·算法
高洁0117 分钟前
激活函数应该具有哪些特征
人工智能·python·深度学习·神经网络·transformer
全栈陈序员19 分钟前
【Python】基础语法入门(十五)——标准库精选:提升效率的内置工具箱
开发语言·人工智能·python·学习
IT·小灰灰25 分钟前
AI学会理解物理法则:OpenAI Sora 2如何重塑视频生成新范式
人工智能·python·深度学习·机器学习·数据挖掘·音视频
AI科技星31 分钟前
姬无烦科幻与张祥前统一场论的完美融合
数据结构·人工智能·算法·机器学习·重构
记忆偶然33 分钟前
语音转写技术在专业服务领域的应用实践
python
comli_cn36 分钟前
Adam算法
人工智能·算法·机器学习
暗之星瞳37 分钟前
python爬虫学习——1
爬虫·python·学习
另寻沧海1 小时前
C++ Lambda表达式的隐式转换陷阱
java·c++·算法