斐波那契數,通常用f(n)
表示,形成的序列稱為斐波那契數列。該數列由0
和1
開始,後面的每一項數字都是前面兩項數字的和。也就是:
f(0) = 0, f(1) = 1
f(n) = f(n - 1) + f(n - 2), 其中 n > 1.
給定n
,計算f(n)
。
示例 1:
輸入:2
輸出:1
解釋:f(2) = f(1) + f(0) = 1 + 0 = 1.
示例 2:
輸入:3
輸出:2
解釋:f(3) = f(2) + f(1) = 1 + 1 = 2.
示例 3:
輸入:4
輸出:3
解釋:f(4) = f(3) + f(2) = 2 + 1 = 3.
1.陣列位移
class solution:
def fib(self, n):
""":type n: int
:rtype: int
"""a,b = 0,1
for _ in range(1,n+1):
a, b = b, a+b
return a
時間複雜度:o(n)
2.數學公式
class solution:
def fib(self, n):
""":type n: int
:rtype: int
"""phi = (1+5**0.5)/2
return int((phi**n-(-phi)**-n)/(5**0.5))
時間複雜度:o(1)
這種解法是考驗數學功底了,和陣列已經沒有大關係
LeetCode509 斐波那契數
斐波那契數,通常用f n 表示,形成的序列稱為斐波那契數列。該數列由0和1開始,後面的每一項數字都是前面兩項數字的和。也就是 f 0 0,f 1 1 f n f n 1 f n 2 其中 n 1.給定n,計算f n 示例 1 輸入 2 輸出 1 解釋 f 2 f 1 f 0 1 0 1.示例 2 輸...
LeetCode 509 斐波那契數
斐波那契數,通常用 f n 表示,形成的序列稱為斐波那契數列。該數列由 0 和 1 開始,後面的每一項數字都是前面兩項數字的和。也就是 f 0 0,f 1 1 f n f n 1 f n 2 其中 n 1.給定 n,計算 f n 示例 1 輸入 2 輸出 1 解釋 f 2 f 1 f 0 1 0 1...
leetcode 509 斐波那契數
目錄 一 題目內容 二 解題思路 三 斐波那契數,通常用 f n 表示,形成的序列稱為 斐波那契數列 該數列由 0 和 1 開始,後面的每一項數字都是前面兩項數字的和。也就是 f 0 0,f 1 1 f n f n 1 f n 2 其中 n 1 給你 n 請計算 f n 示例 1 輸入 2 輸出 1...