LeetCode 509 斐波那契數

2022-07-25 11:12:14 字數 3268 閱讀 6003

傳送門:[leetcode] 509. 斐波那契數

斐波那契數,通常用f(n)表示,形成的序列稱為斐波那契數列。該數列由01開始,後面的每一項數字都是前面兩項數字的和。也就是:

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.

**:

class solution 

return fib(n - 1) + fib(n - 2);

}}

**:

class solution 

if (map.containskey(n))

int result = fib(n - 1) + fib(n - 2);

map.put(n, result);

return result;

}}

**:

class solution 

int dp = new int[n + 1];

dp[1] = 1;

for (int i = 2; i <= n; i++)

return dp[n];

}}

**:

class solution 

int pre = 0, cur = 1;

for (int i = 2; i <= n; i++)

return cur;

}}

\[\begin

\left[

\begin

1 & 0\\

0 & 0

\end

\right]

\left[

\begin

1 & 1\\

1 & 0

\end

\right] =

\left[

\begin

1+0 & 1+0\\

0+0 & 0+0

\end

\right] =

\left[

\begin

1 & 1\\

0 & 0

\end

\right]

\end

\]\[\begin

\left[

\begin

1 & 1\\

0 & 0

\end

\right]

\left[

\begin

1 & 1\\

1 & 0

\end

\right] =

\left[

\begin

1+1 & 1+0\\

0+0 & 0+0

\end

\right] =

\left[

\begin

2 & 1\\

0 & 0

\end

\right]

\end

\]\[\begin

\left[

\begin

f_n & f_\\

0 & 0

\end

\right]

\left[

\begin

1 & 1\\

1 & 0

\end

\right] =

\left[

\begin

f_n+f_ & f_n\\

0 & 0

\end

\right] =

\left[

\begin

f_ & f_n\\

0 & 0

\end

\right]

\end

\]**:

class solution 

int matrix = , };

int func = , };

for (int i = 2; i <= n; i++)

return matrix[0][0];

}private int multiply(int a, int b)

}return c;

}}

**:

class solution 

int matrix = , };

int result = pow(matrix, n - 1);

return result[0][0];

}private int pow(int matrix, int n) , };

for (int i = n; i > 0; i /= 2)

matrix = multiply(matrix, matrix);

}return result;

}private int multiply(int a, int b)

}return c;

}}

\[f(n) = \cfrac})^n-(\cfrac})^n)}}

\]**:

class solution 

}

**:

class solution ;

return result[n];

}}

方法很多,從遞迴到記憶表,再到動態規劃,再優化,還有矩陣乘法,還能用公式,還能作弊。

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...