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。

相关推荐
一只会奔跑的小橙子2 分钟前
pytest安装对应的库的方法
python
Hello娃的6 分钟前
【量子力学】Hohenberg-Kohn 定理
人工智能·算法
老马啸西风13 分钟前
成熟企业级技术平台 MVE-010-IGA(Identity Governance & Administration,身份治理与管理)平台
人工智能·深度学习·算法·职场和发展
ohoy14 分钟前
EasyPoi 数据脱敏
开发语言·python·excel
BoBoZz1916 分钟前
MarchingCubes 网格数据体素化并提取等值面
python·vtk·图形渲染·图形处理
老马啸西风26 分钟前
成熟企业级技术平台 MVE-010-app 管理平台
人工智能·深度学习·算法·职场和发展
ekprada34 分钟前
DAY36 复习日
开发语言·python·机器学习
lzh_2001101238 分钟前
树状数组理解
算法
爱笑的眼睛1143 分钟前
强化学习组件:超越Hello World的架构级思考与实践
java·人工智能·python·ai
历程里程碑1 小时前
C++ 6 :string类:高效处理字符串的秘密
c语言·开发语言·数据结构·c++·笔记·算法·排序算法