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。

相关推荐
三十岁老牛再出发13 小时前
08.18每日总结
c++·python·numpy·pandas
️学习的小王13 小时前
Anaconda国内镜像配置与conda常用命令
ide·经验分享·python·conda
Zane199413 小时前
daemon 线程说没就没?一文讲透 threading 的适用场景与线程安全
后端·python
up up day13 小时前
Python enchant 模块使用教程
python
zoujiahui_201813 小时前
Python 包与环境管理工具 uv
开发语言·python·uv
地平线开发者13 小时前
征程6|YOLOv5x 在 Horizon 征程6 上的端到端部署实践(下)
算法·自动驾驶
speop14 小时前
llm-algo-leetcode |Task01
算法·leetcode·职场和发展
神威难绷泪14 小时前
数据结构:哈希表 算法相关 排序算法
数据结构
程序猿阿森14 小时前
Python 闭包与装饰器:从入门到精通
开发语言·python·面试
艾为电子14 小时前
【应用方案】电视沉浸式音频升级: 电视音频 awinic“芯片 + 算法” 一体化解决方案
算法·音视频