以下是普通递归实现的斐波那契数列函数:
def fib(n): if n <= 1: return n return fib(n-1) + fib(n-2)
关于该函数以及记忆化优化,下列说法正确的是:
该函数的时间复杂度为O(n),运行效率较高
使用functools.lru_cache装饰器优化后,该函数的时间复杂度会降低到O(2^n)
functools.lru_cache
记忆化优化的核心是缓存已计算的子问题结果,避免重复计算
移除终止条件if n <=1: return n后,该函数依然可以正确运行
if n <=1: return n