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。

相关推荐
李昊哲小课3 分钟前
NumPy 完整学习笔记
笔记·python·学习·数据分析·numpy
理性的曜7 分钟前
AI语音通话系统设计思路:从语音输入到智能回复
人工智能·python·websocket·fastapi
专业发呆业余科研8 分钟前
深度反思不变学习:当 EIIL 失效时,如何通过“偏见诱导”重建环境标签?
人工智能·python·深度学习·神经网络·机器学习
董董灿是个攻城狮13 分钟前
大模型连载8:词向量如何表示近义词?
人工智能·python·算法·机器学习
阿钱真强道16 分钟前
08 Python 数据分析:学生画像匹配与相似度计算
python·机器学习·数据分析·pandas·推荐系统·相似度计算·文本分析
Jasmine_llq17 分钟前
《B4001 [GESP202406 一级] 立方数》
算法·单输入处理·整数算术运算·立方数枚举验证算法(核心逻辑)·循环终止优化算法·状态标记算法·三元运算符输出
2401_8535765018 分钟前
使用PyTorch构建你的第一个神经网络
jvm·数据库·python
IT 行者26 分钟前
Claude Code Viewer: 打造 Web 端 Claude Code 会话管理利器
前端·人工智能·python·django
芸忻26 分钟前
day 13 第六章 二叉树 part01代码随想录算法训练营71期
数据结构·算法
2401_9001515428 分钟前
C++中的桥接模式
开发语言·c++·算法