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。

相关推荐
重生之小比特6 分钟前
【算法拾光】滑动窗口|长度最小的子数组 + 无重复字符的最长子串
算法
weixin_3077791312 分钟前
C++代码实现MATLAB中的fitnlm函数功能
开发语言·c++·算法·matlab
雪落漂泊16 分钟前
C++算法:双指针篇(下)
数据结构·c++·算法
惊讶的猫22 分钟前
langchain-agent的基础使用
python·langchian
把我格子衫拿来1 小时前
VTK 体绘制入门到排错:传递函数、采样距离与透明度的关系
python·vtk·可视化·医学影像·体绘制
张张123y7 小时前
后端第一课:输入 URL 后发生了什么?我用手写 Socket 把全链路跑通了
python·websocket·ai·socket·url·后端开发
全栈弄潮儿9 小时前
Python实战第7期:字典与集合
后端·python·编程语言
2603_965148119 小时前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
生态学者10 小时前
Global Change Biology | 森林越“步调一致”,反而越怕干旱?树木生长与叶片活动的同步之谜
大数据·人工智能·算法·r语言·微信公众平台