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。

相关推荐
思成Codes3 分钟前
ACM训练:接雨水3.0——动态接雨水
数据结构·算法
alphaTao3 分钟前
LeetCode 每日一题 2026/1/12-2026/1/18
python·算法·leetcode
sin_hielo4 分钟前
leetcode 2943
数据结构·算法·leetcode
Fasda1234513 分钟前
基于yolo11-C3k2-AKConv的太阳能电池片缺陷检测技术分享
python
观测云23 分钟前
AWS Lambda Python 应用可观测最佳实践(DDTrace)
python·云计算·aws
Snow_day.43 分钟前
有关平衡树
数据结构·算法·贪心算法·动态规划·图论
翔云1234561 小时前
(MySQLdb._exceptions.OperationalError) (2006, ‘MySQL server has gone away‘)
网络·python
Hcoco_me1 小时前
大模型面试题75:讲解一下GRPO的数据回放
人工智能·深度学习·算法·机器学习·vllm
Xの哲學1 小时前
Linux设备驱动模型深度解剖: 从设计哲学到实战演练
linux·服务器·网络·算法·边缘计算
我是一只小青蛙8881 小时前
Python办公自动化:6大实用库速览
python