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。

相关推荐
逍遥德7 分钟前
JPA 操作对象图 (Object Graph) 详解
开发语言·python
deephub17 分钟前
DeepSeek 开年王炸:mHC 架构用流形约束重构 ResNet 残差连接
人工智能·python·深度学习·神经网络·残差链接
上班职业摸鱼人22 分钟前
MMDetection 框架完整教程(从入门到实战,代码可复现)
python
意趣新23 分钟前
OpenCV 中摄像头视频采集 + 实时显示 + 视频保存
python·opencv·计算机视觉
清水白石00825 分钟前
《Python 中 deque vs list:性能差异全解析与高效数据结构实战指南》
数据结构·python·list
ss27326 分钟前
CompletionService:Java并发工具包
java·开发语言·算法
额呃呃30 分钟前
select和poll之间的性能对比
开发语言·算法
智航GIS31 分钟前
7.2 Try Except语句
开发语言·python
王哈哈^_^31 分钟前
【完整源码+数据集】道路交通事故数据集,yolo车祸检测数据集 7869 张,交通事故级别检测数据集,交通事故检测系统实战教程
人工智能·深度学习·算法·yolo·目标检测·计算机视觉·毕业设计