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。

相关推荐
地平线开发者14 分钟前
模型部署|如何解决算子约束
深度学习·算法·自动驾驶
2601_9628857214 分钟前
A股数据源和 API 怎么选?(2026 全景选型指南 + 决策树)
python
Ticnix25 分钟前
别再手动上线了:一条命令带备份、健康检查和自动回滚
后端·python·ci/cd
正经教主29 分钟前
【FDE系列】阶段2:Day 32:多表查询 — JOIN 与聚合
人工智能·python·fde
Ticnix32 分钟前
迁移脚本能跑通,不代表你回滚得回来
后端·python
我的xiaodoujiao37 分钟前
Django 基础知识详细图文教程 10-Django 模板引擎 3
后端·python·测试工具·django
quantdash_cc40 分钟前
量化策略为什么需要实时行情数据?从信号产生到交易决策的时间差说起
开发语言·python·数据分析·量化交易·股票数据·quantdash
H Journey41 分钟前
pip 和uv 开发和部署python项目
python·pip·uv
Navigator_Z1 小时前
LeetCode //C - 1254. Number of Closed Islands
c语言·算法·leetcode
deepseek231 小时前
GPT-6 Astra 破解 FrontierMath 九年悬案拆解:调和熵投票规则反证核恒非空,局部搜索如何终结反例悬赏
人工智能·算法·ai agent