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 分钟前
80. 删除有序数组中的重复项 II
java·数据结构·算法
雪域迷影2 分钟前
Python Django 7 小时课程
开发语言·python·django
量化吞吐机13 分钟前
最高最低都一样,价格就同样集中吗
人工智能·python
FITA阿泽要努力16 分钟前
如何调用 LLM 接口
python·api·agent
江湖中的阿龙28 分钟前
大模型应用怎么做评测?从样本集、自动评分到上线回归的完整实战
人工智能·python·回归·大模型评测
臻选云栗子33 分钟前
PCDN跑不起来?先别甩锅给平台,问题可能出在这
算法·程序员
小画家~42 分钟前
vue3 里面的 itemList.reduce
前端·数据结构·算法
雾游44 分钟前
用上 uv 后,搭建 Python 项目终于顺手了:从安装到环境恢复,一篇讲清
python
范中勤1 小时前
LangGraph Checkpointer 封装(下):with 的双层上下文与 MemorySaver 为什么不用 with
python·大模型·llm·agent·langgraph
鸿业远图科技1 小时前
丹东市_公交线
python