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。

相关推荐
悠仁さん5 分钟前
数据结构OJ 简单算法题
数据结构
宸津-代码粉碎机5 分钟前
Spring AI 企业级RAG实战|增量更新+文档去重+定时自动入库生产落地方案
java·大数据·人工智能·后端·python·spring
正在走向自律6 分钟前
告别低效繁琐!DeepSeek+Python 重塑科研绘图新范式
python·开发工具·deepseek·ai辅助编程
菜菜的顾清寒7 分钟前
力扣HOT100(52)动态规划 - 最长递增子序列
算法·leetcode·动态规划
曾阿伦8 分钟前
Unicode 正则表达式开发指南
python·正则表达式
香辣西红柿炒蛋11 分钟前
yaml文件介绍、数据读取
python
WBluuue13 分钟前
数据结构与算法:树上启发式合并
数据结构·c++·算法·启发式算法
乐于分享的阿乐13 分钟前
(二)VSCode搭建python环境(详细图文保姆级教程)
ide·vscode·python
weixin_4080996717 分钟前
2026 AI生成图片快速去水印的5种实测方法(附在线工具 + Python/Java/PHP API代码)
java·人工智能·python·api接口·ai去水印·石榴智能·自动去水印
2601_9611940220 分钟前
2026初级会计经济法基础知识点汇总
python·django·pdf·virtualenv·代理模式·pygame