10. 斐波那契数列

斐波那契数列

http://www.nowcoder.com/questionTerminal/c6c7742f5ba7442aada113136ddea0c3

  1. 递归,为了提高效率,我们需要利用一个辅助的结果列表result,计算过的n和Fibonacci(n)对储存在里面,避免重复计算
    # -*- coding:utf-8 -*-
    class Solution:
     def Fibonacci(self, n):
         # write code here
         result = {0:0, 1:1}
         def helper(n):
             if n in result:
                 return result[n]
             res = helper(n-1) + helper(n-2)
             result[n] = res
             return res
         return helper(n)    
  2. 利用矩阵
    https://blog.csdn.net/lamusique/article/details/89161831
  3. 更简单实用的是用循环来做
    class Solution:
     def Fibonacci(self, n):
         # write code here
         res = [0,1,1,2]
         while len(res)-1  < n:
             res.append(res[-1]+res[-2])
         return res[n]
全部评论
这样就行 # -*- coding:utf-8 -*- class Solution: def Fibonacci(self, n): # write code here res = [0,1,1,2] if n>len(res)-1: for i in range(3,n): res.append(res[i]+res[i-1]) return res[n]
点赞 回复 分享
发布于 2021-03-19 16:12
第三种方法通不过,缺少循环添加,加上去之后超时了
点赞 回复 分享
发布于 2021-03-19 16:09

相关推荐

06-11 15:52
东南大学 C++
点赞 评论 收藏
分享
Rena1ssance_:对的,要是面评没太烂,勤更新简历等捞就行了,腾讯可以无限复活
点赞 评论 收藏
分享
05-20 21:57
已编辑
门头沟学院 Java
喜欢吃卤蛋的悲伤蛙在提需求:建信融通没消息吧,我2说有实习挂简历不理了
点赞 评论 收藏
分享
评论
5
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务