小渣渣的演算法學習筆記:2018秋招備戰
資料結構類演算法總結:遞迴和迴圈
1.題目描述:
大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。2.思路解析:n<=39 不要使用遞迴,呼叫棧存在記憶體溢位的風險 使用迴圈是最實用的解法
經典的遞迴案例。用不同的方法求解斐波那契數列的時間效率大不相同。基於遞迴的解法雖然直觀但是時間效率很低。
使用迴圈實現可以極大提高時間效率,因為避免了遞迴中大量的重複計算,儲存了數列中間項
3.**實現:
public classsolution07public intfibonacci(intn)
public intfibonacci(intn)
returnc;
}}
《劍指offer》第7題 斐波那契數列
大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項 從0開始,第0項為0,第1項是1 n 39 之前寫過一題是需要返回整個斐波那契數列的,所以此次遞迴借助乙個初始化列表 class solution1 def init self self.fiblist 0 1 前兩項 d...
劍指offer 10 斐波那契數列
遞迴解法 long fibonacci int n 在劍指offer中提到,面試時如果僅僅是做出遞迴的解法,估計是通過不了面試的。我們分析遞迴的過程,以求f 10 為例,需先求f 9 和f 8 要求f 9 需先求f 8 和f 7 我們可以發現在求解的過程中有很多節點是重複計算的,而且計算量是指數遞增...
劍指Offer10 斐波那契數列
class solution return b 2.最優解 矩陣運算 快速冪 o logn 每次n右移一位,即每次迴圈除2,直至n為0,因此時間為log2 n,o 1 需要兩個矩陣大小 快速冪 a n xi 1 a logn x3 a 4 x2 a 2 x1 a 1 x0 a 0 其中x序列是指數n...