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。

相关推荐
qq_5137280412 小时前
浏览器配置 + 文件上传 + 截图
python·selenium·测试工具·计算机外设
Fluxproxy13 小时前
Python请求玄学根治:彻底解决脚本间歇性超时、断连、假死问题
网络·python·安全
青 春 记 忆13 小时前
零基础入门Python15|关联、聚合、索引与事务:订单数据库
开发语言·python·后端开发
aqiu11111113 小时前
【算法刷题】蓝桥杯/AtCoder:删除元素后的中位数问题(Symmetry / Median)
算法·蓝桥杯·排序·中位数
圣保罗的大教堂13 小时前
leetcode 1386. 安排电影院座位 中等
leetcode
看我眼色行事^ \/ ^14 小时前
2024.05.11 360春招WEB前端编程题
算法
来一碗刘肉面14 小时前
有向无环图 DAG(描述表达式)
数据结构
一只肥瘫瘫14 小时前
编码器 PLL 角度与速度观测器原理
人工智能·算法
圣保罗的大教堂14 小时前
leetcode 3069. 将元素分配到两个数组中 I 简单
leetcode