慕粉2011219583
2020-02-26 15:27
递归性能是不是很低?
递归的性能是很低,因为会有大量重复计算的过程。但是可以提高性能。你把已经递归的值存放到字典里,需要用时取之。这样你输入1000都不会死机。
from collections import defaultdict total_dic = defaultdict(int) def fib(k): if k in [1, 2]: return 1 if k in total_dic: result = total_dic[k] else: result = fib(k-1) + fib(k-2) total_dic[k] = result return result print(fib(1000))
楼上回答的无非是增加了一个缓存,那为什么不用Python自带的缓存来实现呢,functool.lru_cache,代码不需要任何变动,仅仅加一个装饰器即可
Python 算法面试难点攻坚课--动态规划
3704 学习 · 11 问题
相似问题
回答 1