斐波那契數,通常用 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示例 2:輸出:1
解釋:f(2) = f(1) + f(0) = 1 + 0 = 1.
輸入:3示例 3:輸出:2
解釋:f(3) = f(2) + f(1) = 1 + 1 = 2.
輸入:4
輸出:3解釋:f(4) = f(3) + f(2) = 2 + 1 = 3.
一、遞迴(最慢,訪問太多次f(0
),f(
1)
f(0),f(1)
f(0),f
(1))
class
solution
:def
fib(self, n:
int)
->
int:
if n <2:
return n
return self.fib(n -1)
+self.fib(n-
2)
二、按數學公式流程自下而上
class
solution
:def
fib(self, n:
int)
->
int:
if n <2:
return n
f1 =
0 f2 =
1for i in
range(2
, n+1)
: tmp = f2
f2 = f1 + f2
f1 = tmp
return f2
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...
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 輸入 n 2 輸出 1 解釋 f 2 f 1 f 0 1 0 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 輸...