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。

相关推荐
小小晓.3 分钟前
C++小白记:vector
开发语言·c++·算法
tkevinjd5 分钟前
力扣72-编辑距离
算法·leetcode·职场和发展
小刘学技术14 分钟前
AI人工智能决策树分类器:原理、实现与应用
开发语言·人工智能·python·算法·决策树·机器学习·数据挖掘
天才测试猿21 分钟前
Selenium自动化测试网页加载太慢怎么解决?
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
caimouse1 小时前
mm学习笔记_04:VAD树算法与地址空间分配
笔记·学习·算法·reactos
abcy0712131 小时前
flink窗口类型
开发语言·python·算法
zhanghaha13141 小时前
Python语言基础:2_环境搭建
开发语言·python
二宝哥2 小时前
15.Python第三方库安装全攻略:全局环境 vs 虚拟环境、镜像配置详解
python
梅雅达编程笔记10 小时前
零基础学 Python 第14章 | 模块、包与第三方库
开发语言·python·django·numpy·pandas
Mr__Miss10 小时前
Java泛型完全指南:从入门到精通
java·开发语言·python