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。

相关推荐
Maiko Star1 分钟前
Python项目实战——网络机器人(爬虫)
爬虫·python·机器人
xlrqx11 分钟前
2026年沧州家电清洗培训成本核算方法及成本控制要点
大数据·python
许彰午23 分钟前
85_Python Flask开发RESTful API
python·flask·restful
梦想不只是梦与想28 分钟前
OmegaConf 配置管理库的使用
python·omegaconf·结构化配置
梦回江东29 分钟前
递归的编译优化(2)
算法
学究天人34 分钟前
数学公理体系大全:第六章 选择公理的等价形式及证明
人工智能·线性代数·算法·机器学习·数学建模·概率论·原型模式
:-)40 分钟前
基础算法-插入排序
数据结构·算法·排序算法
gumichef43 分钟前
排序专题(插入,)
数据结构·算法·排序算法
初学者,亦行者1 小时前
算法设计与分析3:贪心法 - 求解最短路径问题(TSP)
算法·代理模式
Starmoon_dhw1 小时前
题解:P16108 「o.OI R-1」基础博弈练习题
c++·算法·图论