劍指 Offer 10 I 斐波那契數列

2021-10-09 19:14:24 字數 534 閱讀 2027

很明顯可以根據斐波那契額數列的定義f(n) = f(n-1) + f(n-2),可以給定初始條件,利用遞迴來做。但是像這種情況,遞迴的話先不說記憶體的問題,每一次計算時,因為是從上向下計算的,所以會有大量的重複資料,並且這個重複資料的出現對f(n)並沒用幫助。這種情況一般採用從下向上開始計算,並且不是遞迴的形式,而是採用迴圈的方式外加輔助變數,從底部向上計算每乙個f(n),知道達到條件為止。

**如下:

class solution 

return ans;}}

也可以採用動態規劃,矩陣的形勢來,**如下:

class solution 

return dp[n];}}

我原本以為採用輔助變數的形式,比採用動態規劃陣列的形式要節省記憶體,沒想到提交的結果兩者記憶體消耗竟然差不多。

遞迴的形式也給出一下,當作對遞迴的練習:

class solution 

}

路飛題解:

劍指 Offer 10 I 斐波那契數列

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

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

劍指 Offer 10 I 斐波那契數列

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