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。

相关推荐
温九味闻醉6 分钟前
人工智能应用作业1:PPO强化学习算法
人工智能·算法
新知图书17 分钟前
【图书推荐】《Python大数据分析师的算法手册》
python·数据分析
苏宸啊20 分钟前
哈希表开放定址法增删改查简单实现
数据结构·c++
apcipot_rain20 分钟前
Python 脚本生成目录树
开发语言·python
玉小格41 分钟前
动态内存管理
数据结构
港股研究社1 小时前
广汽年报里的隐线:组织改革、生态协同与修复起点
python
Sirius.z1 小时前
第T11周:优化器对比实验
python
loriloy1 小时前
Python 环境管理工具 pyenv-win (windows版本)
windows·python·pyenv-win
AnalogElectronic1 小时前
考研408计算机学科专业基础综合 数据结构复习
数据结构·考研·链表
William Dawson1 小时前
【Java Stream 流:高效、优雅的集合操作 ✨】
java·windows·python