第十題 斐波那契數列

2021-08-21 13:42:58 字數 1370 閱讀 2390

大家都知道斐波那契數列,現在要求輸入乙個整數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級台階有幾種不同的走法?這就是乙個斐波那契數列 登上第一級台階有一...