Leetcode Day3 1
寫一個(gè)函數(shù),輸入 n ,求斐波那契(Fibonacci)數(shù)列的第 n 項(xiàng)(即 F(N))。斐波那契數(shù)列的定義如下:
F(0) = 0,? ?F(1) = 1
F(N) = F(N - 1) + F(N - 2), 其中 N > 1.
斐波那契數(shù)列由 0 和 1 開(kāi)始,之后的斐波那契數(shù)就是由之前的兩數(shù)相加而得出。
答案需要取模 1e9+7(1000000007),如計(jì)算初始結(jié)果為:1000000008,請(qǐng)返回 1。
草這道題其實(shí)非常非常簡(jiǎn)單,但是我不太會(huì)用py寫,自己也太久沒(méi)寫了,就記得肯定不能用遞歸不然妥妥的超時(shí),然后邊界條件錯(cuò)了幾次,愧疚。

不過(guò)反正最終是過(guò)了,等會(huì)看看題解能不能優(yōu)化一下。
所以為什么python一定要帶個(gè)self,感覺(jué)怪怪的。
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


大佬的代碼,草怎么能優(yōu)化成這樣的,哈人