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。

相关推荐
财经资讯数据_灵砚智能1 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年6月4日
人工智能·python·ai·信息可视化·自然语言处理·ai编程·灵砚智能
lightqjx5 分钟前
【算法】数据结构_单调栈
数据结构·算法·单调栈
Promise微笑7 分钟前
洞察无形:红外热像仪应用场景与高性价比之选
人工智能·物联网·算法
用户67573181940258 分钟前
两个Bot不能聊天,我让它们自己建了一条高速公路
python
如烟花的信页11 分钟前
易盾滑块逆向分析
javascript·爬虫·python·js逆向
8Qi812 分钟前
LeetCode 746:使用最小花费爬楼梯 —— 题解笔记
java·笔记·算法·leetcode·动态规划
pipo16 分钟前
没雷达也能调 Nav2?我开源了一套仿真到实机复用的 ROS 2 3D LiDAR 导航工作空间
算法
常常有22 分钟前
Redis:哨兵模式 (Sentinel)
redis·python·sentinel
计算机安禾22 分钟前
【算法分析与设计】第44篇:随机化复杂度类:RP、BPP与去随机化猜想
java·数据结构·数据库·算法·机器学习
程序员三藏29 分钟前
接口测试用例设计
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试