前言
麵試筆試經驗技巧篇
經驗技巧1 如何巧妙地迴答麵試官的問題2
經驗技巧2 如何迴答技術性的問題3
經驗技巧3 如何迴答非技術性問題4
經驗技巧4 如何迴答快速估算類問題5
經驗技巧5 如何迴答算法設計問題6
經驗技巧6 如何迴答係統設計題9
經驗技巧7 如何解決求職中的時間衝突問題11
經驗技巧8 如果麵試問題曾經遇見過,是否要告知麵試官12
經驗技巧9 被企業拒絕#是否可以再申請12
經驗技巧10 如何應對自己不會迴答的問題13
經驗技巧11 如何應對麵試官的“激將法”語言14
經驗技巧12 如何處理與麵試官持不同觀點這個問題15
經驗技巧13 關注職場暗語15
麵試筆試真題解析篇
第1章 鏈錶21
1.1 如何實現鏈錶的逆序22
1.2 如何從無序鏈錶中移除重復項26
1.3 如何計算兩個單鏈錶所代錶的數之和29
1.4 如何對鏈錶進行重新排序32
1.5 如何找齣單鏈錶中的倒數第k個元素35
1.6 如何檢測一個較大的單鏈錶是否有環39
1.7 如何把鏈錶相鄰元素翻轉41
1.8 如何把鏈錶以K個結點為一組進行翻轉43
1.9 如何閤並兩個有序鏈錶46
1.10 如何在隻給定單鏈錶中某個結點的指針的情況下刪除該結點49
1.11 如何判斷兩個單鏈錶(無環)是否交叉51
1.12 如何展開鏈接列錶54
第2章 棧、隊列與哈希57
2.1 如何實現棧57
2.2 如何實現隊列60
2.3 如何翻轉棧的所有元素64
2.4 如何根據入棧序列判斷可能的齣棧序列68
2.5 如何用O(1)的時間復雜度求棧中#小元素71
2.6 如何用兩個棧模擬隊列操作73
2.7 如何設計一個排序係統74
2.8 如何實現LRU緩存方案76
2.9 如何從給定的車票中找齣旅程77
2.10 如何從數組中找齣滿足a+b=c+d的兩個數對79
第3章 二叉樹81
3.1 二叉樹基礎知識81
3.2 如何把一個有序整數數組放到二叉樹中83
3.3 如何從頂部開始逐層打印二叉樹結點數據84
3.4 如何求一棵二叉樹的#大子樹和87
3.5 如何判斷兩棵二叉樹是否相等89
3.6 如何把二叉樹轉換為雙嚮鏈錶90
3.7 如何判斷一個數組是否是二元查找樹後序遍曆的序列93
3.8 如何找齣排序二叉樹上任意兩個結點的#近共同父結點94
3.9 如何復製二叉樹101
3.10 如何在二叉樹中找齣與輸入整數相等的所有路徑102
3.11 如何對二叉樹進行鏡像反轉104
3.12 如何在二叉排序樹中找齣第1個大於中間值的結點106
3.13 如何在二叉樹中找齣路徑#大的和107
3.14 如何實現反嚮DNS查找緩存109
第4章 數組112
4.1 如何找齣數組中唯#的重復元素112
4.2 如何查找數組中元素的#大值和#小值118
4.3 如何找齣鏇轉數組的#小元素121
4.4 如何找齣數組中丟失的數124
4.5 如何找齣數組中齣現奇數次的數126
4.6 如何找齣數組中第k小的數128
4.7 如何求數組中兩個元素的#小距離131
4.8 如何求解#小三元組距離134
4.9 如何求數組中絕#值#小的數138
4.10 如何求數組連續#大和141
4.11 如何找齣數組中齣現1次的數145
4.12 如何對數組鏇轉147
4.13 如何在不排序的情況下求數組中的中位數148
4.14 如何求集閤的所有子集150
4.15 如何對數組進行循環移位152
4.16 如何在有規律的二維數組中進行高效的數據查找155
4.17 如何尋找#多的覆蓋點157
4.18 如何判斷請求能否在給定的存儲條件下完成158
4.19 如何按要求構造新的數組160
4.20 如何獲取#好的矩陣鏈相乘方法161
4.21 如何求解迷宮問題163
4.22 如何從三個有序數組中找齣它們的公共元素165
4.23 如何求兩個有序集閤的交集167
4.24 如何對有大量重復的數字的數組排序171
4.25 如何對任務進行調度174
4.26 如何對磁盤分區176
第5章 字符串178
5.1 如何求一個字符串的所有排列178
5.2 如何求兩個字符串的#長公共子串183
5.3 如何對字符串進行反轉187
5.4 如何判斷兩個字符串是否為換位字符串189
5.5 如何判斷兩個字符串的包含關係191
5.6 如何對由大小寫字母組成的字符數組排序193
5.7 如何消除字符串的內嵌括號194
5.8 如何判斷字符串是否是整數196
5.9 如何實現字符串的匹配199
5.10 如何求字符串裏的#長迴文子串202
5.11 如何按照給定的字母序列對字符數組排序208
5.12 如何判斷一個字符串是否包含重復字符210
5.13 如何找到由其他單詞組成的#長單詞212
5.14 如何統計字符串中連續的重復字符個數214
5.15 如何求#長遞增子序列的長度215
5.16 求一個串中齣現的第1個#長重復子串216
5.17 如何求解字符串中字典序#大的子序列218
5.18 如何判斷一個字符串是否由另外一個字符串鏇轉得到220
5.19 如何求字符串的編輯距離222
5.20 如何在二維數組中尋找#短路綫224
5.21 如何截取包含中文的字符串227
5.22 如何求相對路徑228
5.23 如何查找到達目標詞的#短鏈長度229
第6章 基本數字運算232
6.1 如何判斷一個自然數是否是某個數的平方232
6.2 如何判斷一個數是否為2的n次方234
6.3 如何不使用除法操作符實現兩個正整數的除法236
6.4 如何隻使用+= 操作符實現加減乘除運算240
6.5 如何根據已知隨機數生成函數計算新的隨機數242
6.6 如何判斷1024!末尾有多少個0243
6.7 如何按要求比較兩個數的大小244
6.8 如何求有序數列的第1500個數的值245
6.9 如何把十進製數(long型)分彆以二進製和十六進製形式輸齣246
6.10 如何求二進製數中1的個數247
6.11 如何找#小的不重復數248
6.12 如何計算一個數的n次方252
6.13 如何在不能使用庫函數的條件下計算n的平方根254
6.14 如何不使用^操作實現異或運算254
6.15 如何不使用循環輸齣1到100256
第7章 排列組閤與概率257
7.1 如何求數字的組閤257
7.2 如何拿到#多金幣259
7.3 如何求正整數n所有可能的整數組閤260
7.4 如何用一個隨機函數得到另外一個隨機函數262
7.5 如何等概率地從大小為n的數組中選取m個整數263
7.6 如何組閤1,2,5這三個數使其和為100264
7.7 如何判斷還有幾盞燈泡亮著266
第8章 排序268
8.1 如何進行選擇排序268
8.2 如何進行插入排序269
8.3 如何進行冒泡排序270
8.4 如何進行歸並排序271
8.5 如何進行快速排序272
8.6 如何進行希爾排序275
8.7 如何進行堆排序276
8.8 如何進行基數排序278
第9章 大數據280
9.1 如何從大量的url中找齣相同的url280
9.2 如何從大量數據中找齣高頻詞281
9.3 如何找齣訪問百度#多的IP282
9.4 如何在大量的數據中找齣不重復的整數282
9.5 如何在大量的數據中判斷一個數是否存在283
9.6 如何查詢#熱門的查詢串284
9.7 如何統計不同電話號碼的個數285
9.8 如何從5億個數中找齣中位數286
9.9 如何按照query的頻度排序287
9.10 如何找齣排名前500的數288
· · · · · · (
收起)