Ниже приведены два различных кода динамического программирования для ряда Фибоначчи. Я не могу понять сложность этого времени. Результаты обоих одинаковы. Любая помощь приветствуется.
#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)