Java 劍指offer 面試題10 斐波那契數列

2021-09-09 06:52:17 字數 1048 閱讀 1845

求斐波那契數列的第n項

遞迴:遞迴法實現起來簡單,但是因為會計算重複的節點,這就意味著計算量會隨著n的增大急劇增大。當計算n=50,第50項的時候已經相當耗時

非遞迴:

可以採用迴圈,先得到f(0)  f(1)  相加得到f(2)  再相加得到f(3)   再得到f(4)    依次得到f(n)  

//寫乙個函式,輸入n,求斐波那契數列的第n項

public class fibonaccisequence else if(n==1)else

}//非遞迴處理

public static long getfibonaccisequence(int n)

if(n==1)

long firstminus = 0;

long secondminus = 1;

long n = 0;

for(int i=2;i<=n;i++)

return n;

}public static void main(string args) else

}}

變形:青蛙跳台階

同樣也是斐波那契數列的應用   注意前3項與斐波那契數列的不同   但也是菲波那切數列的應用

/**

* 乙隻青蛙 一次可以跳上乙個台階,也可以跳上兩個台階,求該青蛙跳上n階台階一共有多少種跳法

*/public class frogupstairs else if(n==1)else if(n==2)else

}//非遞迴

public static long frogupstairs(int n)

if(n==1)

if(n==2)

long firstmaxium = 1;

long secondmaxium = 2;

long n = 0;

for (int i=3;i<=n;i++)

return n;

}public static void main(string args)

}

劍指offer 面試題(1)

這兩天通過做作業接觸了 劍指offer 這本書 覺得裡面的面試題真是異常經典,當你看到那一道一道面試題時,對自我的做題筆試能力肯定會大有脾益 平常可以多做練習,養成乙個習慣 好了,廢話不多說了,直接上題吧 我已經感到 了 第一道 劍指offer 面試題14 調整陣列使奇數全部都位於偶數前面。題目 輸...

劍指offer 面試題 (替換空格) 1

題目分析 首先,我們應該想到的是原來是乙個空格字元,替換之後變為三個字元 2 0 如果我們直接在原來的字串上進行替換,就有可能覆蓋掉原本的內容 如果是建立新的字串並 新的字串上做替換,那麼我們可以自己分配好足夠的記憶體,所以我們應該向面試官問清楚如果面 試官告訴你在原本的字串上做修改,並且記憶體足夠...

劍指offer面試題7

面試題7 用兩個棧實現佇列 using namespace std template class cqueue 預備知識 佇列 佇列也是一種常見的資料結構 特點是先進先出 fifo 在stl中有stack和queue兩個容器 template class stack 成員函式 empty size ...