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。

相关推荐
badhope7 分钟前
Agent智能体全面深入教程:架构、机制与工程实践
人工智能·python·机器人
后藤十八里10 分钟前
极验4滑动拼图验证码逆向笔记
笔记·爬虫·python
wuweijianlove11 分钟前
算法复杂度的理论边界与实验验证研究的技术3
算法
小江的记录本16 分钟前
【Swagger】Swagger系统性知识体系全方位结构化总结
java·前端·后端·python·mysql·spring·docker
rm6fEx0Z717 分钟前
AUC 与 GAUC:从全局排序到用户内排序的理解
人工智能·算法·机器学习
minji...18 分钟前
Linux 多线程(四)线程等待,线程分离,线程管理,C++多线程,pthread库
linux·运维·开发语言·网络·c++·算法
m0_7381207221 分钟前
网络安全编程——如何用Python实现SSH 服务端和SSH 反向 Shell(突破内网)
python·web安全·ssh
sinat_2554878125 分钟前
泛型·学习笔记
java·jvm·数据库·windows·python
H_BB25 分钟前
DFS实现回溯算法
数据结构·c++·算法·深度优先
汀、人工智能26 分钟前
[特殊字符] 第17课:滑动窗口最大值
数据结构·算法·数据库架构·图论·bfs·滑动窗口最大值