python - 这两个代码的时间复杂度是多少
问题描述
以下是斐波那契数列的两种不同的动态规划代码。我无法弄清楚这些的时间复杂度。两者的结果是一样的。任何帮助表示赞赏。
#Code 1
def fibo(n) :
if mem[n] is not None:
return mem[n]
if n == 1 or n == 2 :
res = 1
else :
res = fibo(n - 1) + fibo(n - 2)
mem[n] = res
return res
n = int(input("Enter position :"))
mem = [None] * (n + 1)
fibo(n)
代码 2
def fibo(n) :
if len(mem) == n-1 :
return mem[n-1]
if n == 1 or n == 2 :
res = 1
else :
res = fibo(n - 1) + fibo(n - 2)
mem.append(res)
return res
n = int(input("Enter position :"))
mem = []
fibo(n)
解决方案
推荐阅读
- ios - Flutter xcode build failed resource fork, Finder information, or similar detritus not allowed..每次
- azerothcore - azerothcore 编译问题,成功编译 src 后,在安装步骤观察到 cmake install permission denied 错误
- linux - 来自 linux 的 iSeries AS400 的 FTP bash 脚本
- c - 我在不同文件中使用结构时遇到问题
- vba - 重命名和移动文件时出现运行时错误 75
- flutter - 如何自定义底部导航栏项目而不是创建自定义底部导航栏
- java - 将列表中的类和类解析为不起作用的方法
- node.js - 发送确认电子邮件以验证注册
- flutter - Dart/Flutter 中断 for 循环
- python - 使用 numpy 求和,其中 i != j