劍指offer(Java版)day02:用兩個棧實現(xiàn)隊列|旋轉(zhuǎn)數(shù)組的最小數(shù)字|斐波那契數(shù)列|跳臺階|變態(tài)跳臺階|矩形覆蓋

????1用兩個棧實現(xiàn)隊列

【題目】用兩個棧來實現(xiàn)一個隊列,完成隊列的Push和Pop操作。 隊列中的元素為int類型。

【考察點】棧和隊列

【思路】入隊:將元素進(jìn)棧A

出隊:判斷棧B是否為空,如果為空蹄溉,則將棧A中所有元素pop,并push進(jìn)棧B您炉,棧B出棧柒爵;

如果不為空,棧B直接出棧赚爵。

【錯誤1】當(dāng)棧為空時我return了null棉胀,但是pop方法的返回值類型是int,所以報錯了冀膝。因此我改成了-1唁奢。

【錯誤2】最后return stack2.pop()應(yīng)該寫在pop方法內(nèi)的最外層,不要寫在else里面窝剖,因為不管有沒有經(jīng)過從stack1出棧到stack2入棧麻掸,最后都是要pop出stack2的棧頂元素。

【錯誤3】是while(!stack1.empty())而不是if(!stack1.empty())赐纱,手誤寫錯了脊奋,while一直pop出stack1中的所有元素,而if值pop出stack1當(dāng)前棧頂?shù)囊粋€元素疙描。

【代碼】

????2旋轉(zhuǎn)數(shù)組的最小數(shù)字

【題目】把一個數(shù)組最開始的若干個元素搬到數(shù)組的末尾诚隙,我們稱之為數(shù)組的旋轉(zhuǎn)。 輸入一個非減排序的數(shù)組的一個旋轉(zhuǎn)起胰,輸出旋轉(zhuǎn)數(shù)組的最小元素久又。 例如數(shù)組{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉(zhuǎn),該數(shù)組的最小值為1效五。 NOTE:給出的所有元素都大于0地消,若數(shù)組大小為0,請返回0畏妖。

【考察點】查找和排序

【思路】好氣氣犯建,看了半天還是不懂二分法的思路!嗚嗚嗚瓜客。這個就是比較普通的解法,當(dāng)某一個位置的元素比下一個位置的元素大時,由旋轉(zhuǎn)的規(guī)律谱仪,說明下一個元素就是最小值玻熙。

【錯誤】記得有返回值的方法一定要return,且return不能放在while疯攒、if這種語句中嗦随,要在所有情況下都能return到。

【代碼】

????3斐波那契數(shù)列

【題目】大家都知道斐波那契數(shù)列敬尺,現(xiàn)在要求輸入一個整數(shù)n枚尼,請你輸出斐波那契數(shù)列的第n項(從0開始,第0項為0)砂吞。n<=39

【考察點】遞歸和循環(huán)

【思路】用循環(huán)署恍,沒有用遞歸。分別用f1蜻直、f2盯质、f3存儲前兩個位置的元素值和當(dāng)前要計算的位置的元素值。當(dāng)n為1和2時概而,return 1呼巷。從3到以后就通過循環(huán)來計算f3=f1+f2,f1和f2的值隨著計算的推進(jìn)也一直往后推進(jìn)赎瑰,循環(huán)結(jié)束return f3王悍。

【錯誤】剛開始int f3的時候忘記給它初始化了,后面return的時候就報錯了餐曼。

【代碼】

????4跳臺階

【題目】一只青蛙一次可以跳上1級臺階压储,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先后次序不同算不同的結(jié)果)晋辆。

【考察點】遞歸和循環(huán)

【思路】我用的是遞歸渠脉,當(dāng)前可以選擇跳1步或者2步,跳一步之后的跳法就變成了f(n-1)瓶佳,跳兩步的跳法就變成了f(n-2)芋膘,當(dāng)n為1的時候只有1種跳法,當(dāng)n為2的時候有2中跳法霸饲,這兩個值是我們的遞歸終止條件为朋。不過這種做法耗時比較長~

【代碼】

????5變態(tài)跳臺階

【題目】一只青蛙一次可以跳上1級臺階,也可以跳上2級……它也可以跳上n級厚脉。求該青蛙跳上一個n級的臺階總共有多少種跳法习寸。

【考察點】遞歸和循環(huán)

【思路】每個臺階都有跳與不跳兩種情況(除了最后一個臺階),最后一個臺階必須跳傻工。所以共有2^(n-1)種情況霞溪。1左移target-1位孵滞,也就是2的(target-1)次方。

【代碼】

? ? 6矩形覆蓋

【題目】我們可以用2*1的小矩形橫著或者豎著去覆蓋更大的矩形鸯匹。請問用n個2*1的小矩形無重疊地覆蓋一個2*n的大矩形坊饶,總共有多少種方法?

【考察點】遞歸和循環(huán)

【思路】有以下幾種情形:

1.target <= 0 大矩形為<= 2*0,直接return 0殴蓬;

2.target = 1大矩形為2*1匿级,只有一種擺放方法,return1染厅;

3.target = 2 大矩形為2*2痘绎,有兩種擺放方法,return2肖粮;

4.target = n 分為兩步考慮:

????? ? 第一次擺放一塊 2*1 的小矩陣孤页,則擺放方法總共為f(target - 1)。

????????第一次擺放一塊1*2的小矩陣尿赚,則擺放方法總共為f(target-2)散庶。

所以還是一個斐波那契數(shù)列。

【代碼】

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凌净,一起剝皮案震驚了整個濱河市悲龟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌冰寻,老刑警劉巖须教,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異斩芭,居然都是意外死亡轻腺,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門划乖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贬养,“玉大人,你說我怎么就攤上這事琴庵∥笏悖” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵迷殿,是天一觀的道長儿礼。 經(jīng)常有香客問我,道長庆寺,這世上最難降的妖魔是什么蚊夫? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮懦尝,結(jié)果婚禮上知纷,老公的妹妹穿的比我還像新娘壤圃。我一直安慰自己,他們只是感情好屈扎,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布埃唯。 她就那樣靜靜地躺著,像睡著了一般鹰晨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上止毕,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天模蜡,我揣著相機與錄音,去河邊找鬼扁凛。 笑死忍疾,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谨朝。 我是一名探鬼主播卤妒,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼字币!你這毒婦竟也來了则披?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤洗出,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庵朝,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡芬迄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了菠镇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片冗荸。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖利耍,靈堂內(nèi)的尸體忽然破棺而出蚌本,到底是詐尸還是另有隱情,我是刑警寧澤堂竟,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布魂毁,位于F島的核電站,受9級特大地震影響出嘹,放射性物質(zhì)發(fā)生泄漏席楚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一税稼、第九天 我趴在偏房一處隱蔽的房頂上張望烦秩。 院中可真熱鬧垮斯,春花似錦、人聲如沸只祠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抛寝。三九已至熊杨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間盗舰,已是汗流浹背晶府。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留钻趋,地道東北人川陆。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像蛮位,于是被迫代替她去往敵國和親较沪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容