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。

相关推荐
dagouaofei6 分钟前
AI自动生成PPT工具对比分析,效率差距明显
人工智能·python·powerpoint
Fine姐8 分钟前
数据结构04——二叉树搜索树BST
数据结构
ku_code_ku9 分钟前
python bert_score使用本地模型的方法
开发语言·python·bert
仰泳的熊猫18 分钟前
1077 Kuchiguse
数据结构·c++·算法·pat考试
祁思妙想29 分钟前
linux常用命令
开发语言·python
流水落花春去也40 分钟前
用yolov8 训练,最后形成训练好的文件。 并且能在后续项目使用
python
LYFlied40 分钟前
【每日算法】LeetCode 19. 删除链表的倒数第 N 个结点
算法·leetcode·链表
Serendipity_Carl41 分钟前
数据可视化实战之链家
python·数据可视化·数据清洗
阿里巴巴AI编程社区43 分钟前
Qoder 提效实战:数据开发工程师用 Qoder 提效50%
数据结构
踏浪无痕44 分钟前
计算机算钱为什么会算错?怎么解决?
后端·算法·面试