題目鏈結
題目描述
大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。
n<=39
fib(10) = fib(8) + fib(9);
fib(9) = fib(8) + fib(7);
在斐波那契數列中,如果fib(n)的n是一定的,那麼無論呼叫多少次都是相同的結果,而第二次呼叫f(n)無疑會重複計算,如果在第一次計算後將值儲存起來那麼就能優化很多。
時間複雜度o(n),空間複雜度o(n)。
class solution
};
每一次運算只用到最近的兩個值,只需要不斷更新n-2和n-1的值即可,可以節省陣列的空間。
時間複雜度o(n),空間複雜度o(1)。
class solution
else
if(n ==1)
int f0 =0;
int f1 =1;
int tmp;
for(
int i =
2; i <= n;
++i)
return f1;}}
;
7 斐波那契數列
思路 fibn fibone fibtwo fibone fibtwo fibtwo fibn public class solution return fibn 相似題目 1 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 pub...
7 斐波那契數列
1 題目描述 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項 從0開始,第0項為0 n 39 2 思路 斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又...
7 斐波那契數列
大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項 從0開始,第0項為0 n 39 有兩種演算法 遞迴 遞迴中有很多重複的地方,從而對效能帶來很大的負擔 遞迴可能引起更大的問題 呼叫棧溢位 動態規劃 自下而上計算,時間複雜度大o n int fibonacci int n ...