大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項(從0開始,第0項為0)。
n<=39
難度:⭐⭐⭐⭐
關鍵:不能用遞迴,時間複雜度會以n的指數方式增長,導致stackoverflow。要用迴圈,為了計算量不大,要自下而上的迴圈,將運算結果存在中間變數中,這樣就是o(n),以一定的空間代價避免代價更大的重複計算的棧空間浪費。
思路:從2開始。f(2)=f(1)+f(0)...one=1,two=0,for(;;)
其他:青蛙跳台階(普通+**版),矩形覆蓋。運用了數學建模的分類思想。
關於動態規劃三個條件:最優子結構、無後效性、子問題重疊。
我的。
class solution
return f;
}};
python 。以陣列的方式。
# -*- coding:utf-8 -*-
class solution:
def fibonacci(self, n):
# write code here
res=[0,1,1,2]
while len(res)<=n:
return res[n]
其他題目
青蛙跳台階
class solution else if (number == 1) else
}};
python
# -*- coding:utf-8 -*-
class solution:
def jumpfloorii(self, number):
# write code here
a=[1,2,4,8]
while(len(a)小矩形覆蓋大矩形
class solution {
public:
int rectcover(int number) {
if(number<=2) return number;
else
{//f(3)=f(2)+f(1)
//f(4)=f(3)+f(2)
int one=2;
int two=1;
int result=3;
for(int i=2;ipython
# -*- coding:utf-8 -*-
class solution:
def rectcover(self, number):
# write code here
a=[0,1,2,3]
while(len(a)<=number):
return a[number]
《劍指offer》第十題(斐波那契數列)
面試題 斐波那契數列 題目 寫乙個函式,輸入n,求斐波那契 fibonacci 數列的第n項。include using namespace std 方法1 遞迴 注意這種遞迴方法雖然看起來很簡單,但是由於壓入棧和彈出,會存在棧溢位的可能,而且效率特別慢,且n越大效率越慢 long long fib...
斐波那契數列 斐波那契數列python實現
斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...
迴圈斐波那契數列 斐波那契數列應用
什麼是斐波那契數列 斐波那契數列指的是這樣乙個數列 1,1,2,3,5,8,13,21,34,55,89,144 這個數列從第3項開始,每一項都等於前兩項之和 台階問題 有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第10級台階有幾種不同的走法?這就是乙個斐波那契數列 登上第一級台階有一...