欢迎光临散文网 会员登陆 & 注册

Leetcode Day3 1

2022-04-03 20:33 作者:我喜欢喝一点点  | 我要投稿

写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:

F(0) = 0,   F(1) = 1

F(N) = F(N - 1) + F(N - 2), 其中 N > 1.

斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。

答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。


草这道题其实非常非常简单,但是我不太会用py写,自己也太久没写了,就记得肯定不能用递归不然妥妥的超时,然后边界条件错了几次,愧疚。


不过反正最终是过了,等会看看题解能不能优化一下。

所以为什么python一定要带个self,感觉怪怪的。


class Solution:

    def fib(self, n: int) -> int:

        return self.solve(n)


    def solve(self,n:int)->int:

        now=0

        tmp=2

        fb=[0,1]

        if n==0:

            return 0

        elif n==1:

            return 1

        else:

            while tmp <= n:

             now=int((fb[tmp-1]+fb[tmp-2])%(1e9+7))

             fb.append(now)

             tmp+=1

        return now



大佬的代码,草怎么能优化成这样的,哈人

Leetcode Day3 1的评论 (共 条)

分享到微博请遵守国家法律