题解 | #斐波那契数列#

斐波那契数列

https://www.nowcoder.com/practice/c6c7742f5ba7442aada113136ddea0c3

from re import S
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param n int整型 
# @return int整型
#
class Solution:
    dict={}
    def Fibonacci(self , n: int) -> int:
        # write code here
        if n==1:
            return 1
        elif n==2:
            return 1
        elif n>2:
		#在n>2的情况下主要是将重复计算的值,保存到字典中
		#例如在计算F5的时候,会分别求f(4)和F(3),计算F(4)的时候会去求F(3)和F(2),相当于计算了2次
		#f(3)这时候,需要把F3的值记录入字典中,然后再用字典返回n的值即可
		几乎可以说,俩个F(N)函数都在求,转化为一个FN函数求,求完后保存到字典中另一个fN函数直接可可用
            if n not in self.dict.keys():
                self.dict[n]=self.Fibonacci(n-1)+self.Fibonacci(n-2)
            else:
                pass
            return self.dict[n]

全部评论
字典,哈希,递归
点赞 回复 分享
发布于 2023-02-18 11:51 广东

相关推荐

运营3年修炼中接简历辅导:你的科研项目经历里,只写了你的动作,没有写你的思考和成果,不要只写使用什么进行了什么,这等于罗列你的任务,简历是为了突出你的优秀,你在什么样的任务背景下,克服了什么样的困难,针对性地做了哪些事情,最后达成了什么成果(用数据体现你的成果和效率)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务