python 斐波那契数列 算法

本文介绍了如何使用Python实现斐波那契数列的算法,包括纯递归、递归加记忆和底部向上优化的方法。通过备忘录和循环优化,将时间复杂度降低,解决递归中的冗余计算问题。同时讨论了空间复杂度的优化,以及滚动变量的非最优解。文章还提供了GitHub链接以查看完整代码。
摘要由CSDN通过智能技术生成

斐波那契数,通常用F(n)表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:

F(0) = 0F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1
给你 n ,请计算 F(n) 。

示例 1:

输入:2
输出:1

解释:F(2) = F(1) + F(0) = 1 + 0 = 1

纯递归

递归有两个基本要素:基例以及递归关系式。

  • 基例:F(0) = 0,F(1) = 1,即递归结束的地方
  • 递归关系式:F(n) = F(n-1) + F(n- 2)

def fib(n):
   #base case
   if n <= 1:
      return n
   elif n >= 2:
      return fib(n-1) + fib(n-2)

然后根据python语法特性,可以缩写为一句话

def fib(n):
  return fib(n-1) + fib(n-2) if n >= <
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值