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。

相关推荐
一念&2 分钟前
计算机网络中的socket是什么?编程语言中的socket编程又是什么?python的socket编程又该如何用?
python·计算机网络·php
python_13612 分钟前
python设计模式-工厂模式
开发语言·python·设计模式
Warren9816 分钟前
MySQL查询语句详解
java·开发语言·数据库·mysql·算法·蓝桥杯·maven
8Qi827 分钟前
深度学习(鱼书)day08--误差反向传播(后三节)
人工智能·python·深度学习·神经网络
AWEN_3328 分钟前
斐波那契数
算法
好好先森&36 分钟前
C语言:冒泡排序
c语言·数据结构·算法·遍历·冒牌排序
wow_DG36 分钟前
【PyTorch✨】01 初识PyTorch
人工智能·pytorch·python
肉夹馍不加青椒1 小时前
第二十三天(数据结构:链表补充【希尔表】)
数据结构·链表
李永奉1 小时前
C语言-字符串(定义)、字符串函数(strlen、strcat、strcpy、strcmp、strlwr、strupr)
c语言·开发语言·算法
暖苏1 小时前
python-异常(笔记)
大数据·开发语言·笔记·python·异常