1. 程式人生 > >劍指offer算法編程題目部分匯總(解法略)

劍指offer算法編程題目部分匯總(解法略)

面試題 搜索 中序遍歷 順時針 路徑 奇數 第一個 重復 不同

總結一下本書中遇到的大部分面試題。面試題3:二維數組中的查找

題目:在一個二維數組中,每一行都按照從左到右的遞增順序排列,每一列都按照從上到下遞增的順序排列,請完成一個函數,輸入這樣的一個整數,判斷數組中是否含有該整數。

面試題4:替換空格

題目:請實現一個函數,把字符串中的每個空格替換成%20。

面試題5:從尾到頭打印鏈表

題目:輸入一個鏈表的頭結點,從尾到頭反過來打印每個結點的值。

面試題6:重建二叉樹

題目:輸入某二叉樹前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設節點沒有重復的。

面試題7:用兩個棧實現隊列

題目描述:如題。

面試題8:旋轉數組的最小數字

題目:把一個數組最開始的若幹個元素搬到數組的末尾,我們稱之為數組的一個旋轉。輸入一個遞增排序的數組的一個旋轉,輸出旋轉數組的最小值。

面試題9:斐波那契數列及其相關應用

面試題10:二進制數中1的個數(如果是移位的話數為負數會死循環)(有驚喜解法)

面試題11:數值的整數次方(有陷阱)

面試題12:打印1到最大的n位數(用字符串打印)

面試題13:在O(1)時間內刪除鏈表節點

題目描述:給定單向鏈表的頭指針和一個結點指針,定義一個函數在O(1)時間刪除該節點

面試題14:調整數組順序使技術位於偶數前面

題目:輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有奇數位於數組的前半部分,所有偶數位於數組的後半部分。(設計模式的抽象)

面試題15:鏈表中倒數第k個結點(陷阱)

面試題16:反轉鏈表

面試題17:合並兩個排序的鏈表

面試題18:樹的子結構

題目:輸入兩棵二叉樹A和B,判斷B是不是A的子結構。

面試題19:二叉樹的鏡像(最好畫圖來,更直觀)

面試題20:順時針打印矩陣

面試題21:包含min函數的棧

面試題22:棧的壓入彈出序列

題目:輸入兩個整數序列,第一個序列表示棧的壓入序列,第二個表示棧的彈出序列,請判斷第二個序列是否為棧的彈出序列(假設棧中數字沒有相同的)

面試題23:從上往下打印二叉樹(入隊列)

面試題24:二叉搜索樹的後序遍歷序列

題目:輸入一個整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷序列,是則返回true,否則返回false,假設輸入的輸入的任意兩個數都不同。

面試題25:二叉樹中和為某一值的路徑

面試題26:復雜鏈表的復制

面試題27:二叉搜索樹與雙向鏈表

題目:輸入一顆二叉搜索樹,將該二叉搜索樹轉換成一個排序的雙向鏈表,要求不能創建任何新的節點,只能調整樹種結點指針的指向

面試題28:字符串的排列

題目:輸入一個字符串,打印出該字符串中字符的所有排列。

面試題29:數組中出線次數超過一半的數字

面試題30:最小的k個數

面試題31:連續子數組的最大和

面試題32:從1到n整數中1出現的次數

面試題33:把數組排成最小的數

面試題34:醜數

面試題35:第一個只出現一次的字符(簡易hash表)

面試題36:數組中的逆序對

面試題37:兩個鏈表的第一個公共節點(壓棧)

面試題38:數字在排序數組中出現的次數

面試題39:二叉樹的深度

暫時先整理到這麽多吧,有一些題目還是比較具有代表性的。

劍指offer算法編程題目部分匯總(解法略)