面試題10 I 斐波那契數列

2021-10-23 07:14:37 字數 582 閱讀 2760

寫乙個函式,輸入 n ,求斐波那契(fibonacci)數列的第 n 項。斐波那契數列的定義如下:

f(0) = 0,   f(1) = 1

f(n) = f(n - 1) + f(n - 2), 其中 n > 1.

斐波那契數列由 0 和 1 開始,之後的斐波那契數就是由之前的兩數相加而得出。

答案需要取模 1e9+7(1000000007),如計算初始結果為:1000000008,請返回 1。

示例 1:

輸入:n = 2

輸出:1

示例 2:

輸入:n = 5

輸出:5

0 <= n <= 100

解答:這道題不要直接用遞迴,遞迴會超時

可以使用dp 

遞推關係:dp[i]=dp[i-1]+dp[i-2]

初始條件:dp[0]=0,dp[1]=1

因為dp的每一項都只和前兩項有關,所以這裡沒必要使用陣列,用兩個中間變數儲存dp的中間值即可

public int fib(int n) 

return y;

}

注意%的要求

面試題10 I 斐波那契數列

title 面試題10 i.斐波那契數列 introduce 寫乙個函式,輸入 n 求斐波那契 fibonacci 數列的第 n 項。斐波那契數列的定義如下 f 0 0,f 1 1 f n f n 1 f n 2 其中 n 1.斐波那契數列由 0 和 1 開始,之後的斐波那契數就是由之前的兩數相加而...

劍指offer 面試題10 I 斐波那契數列

動態規劃解析 狀態定義 設 dpdp 為一維陣列,其中 dp i dp i 的值代表 斐波那契數列第 ii 個數字 轉移方程 dp i 1 dp i dp i 1 dp i 1 dp i dp i 1 即對應數列定義 f n 1 f n f n 1 f n 1 f n f n 1 初始狀態 dp 0...

劍指Offer 面試題10 I 斐波那契數列

寫乙個函式,輸入 n 求斐波那契 fibonacci 數列的第 n 項。斐波那契數列的定義如下 f 0 0,f 1 1 f n f n 1 f n 2 其中 n 1.斐波那契數列由 0 和 1 開始,之後的斐波那契數就是由之前的兩數相加而得出。答案需要取模 1e9 7 1000000007 如計算初...