牺牲空间来优化时间

2019-07-24 09:17:33来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

算例:生成Fibonacci数列

【方法一】秒出结果!

1 a, b = 0, 1
2 for num in range(1, 101)
3     a, b = b, a + b
4     print(f'{num}: {a}')

【方法二】时间消耗特别长!

def fib(num):
    if num in (1, 2):
        return 1
    return fib(num - 1) + fib(num - 2)

for num in range(1, 101):
    print(f'{num}: {fib(num)}')

 

【方法二改进】时间与空间不可兼得,要想优化时间,那就增加额外的存储空间!

1 def fib(num, temp = {})
2     if num in (1, 2):
3         return 1
4     if num not in temp:
5         temp[num] = fib(num - 1) + fib(num - 2)
6     return temp[num]
7 
8 for num in range(1, 101)
9     print(f'{num}: {fib(num)}')

 


原文链接:https://www.cnblogs.com/fymeng/p/11159928.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:多个python版本共存时的pip配置

下一篇:Python:字典的高级知识