程式設計師面試算法寶典

程式設計師面試算法寶典

《程式設計師面試算法寶典》是2018年北京機械工業出版社出版的圖書,作者是猿媛之家。

基本介紹

  • 中文名:程式設計師面試算法寶典
  • 作者:猿媛之家
  • 出版時間:2018年10月12日
  • 出版社:機械工業出版社
  • ISBN:9787111607328 
內容簡介,圖書目錄,

內容簡介

本書是一本講解程式設計師面試算法的書。在寫法上, 除了講解如何解答算法問題外, 還引入了例子輔以說明, 讓讀者能更容易理解。本書將程式設計師面試筆試過程中各類算法類真題一網打盡。在題目的廣度上, 通過各種渠道, 蒐集了近3年來多家IT企業面試算法高頻題目; 在題目的深度上, 本書由淺入深、庖丁解牛式地分析每一個題目, 並提煉歸納, 同時, 引入例子與原始碼、時間複雜度與空間複雜度的分析。本書根據真題所屬知識點分門別類, 結構合理, 條理清晰, 對於讀者進行學習與查閱意義重大。

圖書目錄

前言
面試筆試經驗技巧篇
經驗技巧1 如何巧妙地回答面試官的問題?2
經驗技巧2 如何回答技術性的問題?3
經驗技巧3 如何回答非技術性問題?4
經驗技巧4 如何回答快速估算類問題?5
經驗技巧5 如何回答算法設計問題?6
經驗技巧6 如何回答系統設計題?9
經驗技巧7 如何解決求職中的時間衝突問題?11
經驗技巧8 如果面試問題曾經遇見過,是否要告知面試官?12
經驗技巧9 在被企業拒絕後是否可以再申請?13
經驗技巧10 如何應對自己不會回答的問題?13
經驗技巧11 如何應對面試官的“激將法”語言?14
經驗技巧12 如何處理與面試官持不同觀點這個問題?15
經驗技巧13 什麼是職場暗語?15
面試筆試真題解析篇
第1章 鍊表21
1.1 如何實現鍊表的逆序21
1.2 如何從無序鍊表中移除重複項27
1.3 如何計算兩個單鍊表所代表的數之和30
1.4 如何對鍊表進行重新排序34
1.5 如何找出單鍊表中的倒數第k個元素37
1.6 如何檢測一個較大的單鍊表是否有環41
1.7 如何把鍊表相鄰元素翻轉44
1.8 如何把鍊表以K個結點為一組進行翻轉46
1.9 如何合併兩個有序鍊表49
1.10 如何在只給定單鍊表中某個結點的指針的情況下刪除該結點52
1.11 如何判斷兩個單鍊表(無環)是否相交54
1.12 如何翻轉變異的鍊表58
1.13 如何展開連結列表59
第2章  棧、佇列與哈希63
2.1 如何實現棧63
2.2 如何實現佇列69
2.3 如何翻轉棧的所有元素75
2.4 如何根據入棧序列判斷可能的出棧序列79
2.5 如何用O(1)的時間複雜度求棧中最小元素81
2.6 如何用兩個棧模擬佇列操作83
2.7 如何設計一個排序系統84
2.8 如何實現LRU快取方案86
2.9 如何從給定的車票中找出旅程90
2.10 如何從數組中找出滿足a+b=c+d的兩個數對92
第3章  二叉樹94
3.1 二叉樹基礎知識94
3.2 如何把一個有序整數數組放到二叉樹中96
3.3 如何從頂部開始逐層列印二叉樹結點數據98
3.4 如何求一棵二叉樹的最大子樹和100
3.5 如何判斷兩棵二叉樹是否相等102
3.6 如何把二叉樹轉換為雙向鍊表104
3.7 如何判斷一個數組是否為二元查找樹後序遍歷的序列106
3.8 如何找出排序二叉樹上任意兩個結點的最近共同父結點108
3.9 如何複製二叉樹113
3.10 如何在二叉樹中找出一條路徑滿足路徑上所有結點的和等於給定的整數114
3.11 如何對二叉樹進行鏡像反轉116
3.12 如何在二叉排序樹中找出第一個大於中間值的結點117
3.13 如何在二叉樹中找出路徑和的最大值119
3.14 如何實現反向DNS查找快取121
第4章 數組125
4.1 如何找出數組中唯一的重複元素125
4.2 如何查找數組中元素的最大值和最小值131
4.3 如何找出旋轉數組的最小元素135
4.4 如何找出數組中丟失的數138
4.5 如何找出數組中出現奇數次的數140
4.6 如何找出數組中第k小的數142
4.7 如何求數組中兩個元素的最小距離145
4.8 如何求解最小三元組距離148
4.9 如何求數組中絕對值最小的數152
4.10 如何求數組連續最大和155
4.11 如何找出數組中出現一次的數158
4.12 如何在不排序的情況下求數組中的中位數160
4.13 如何求集合的所有非空子集162
4.14 如何對數組進行循環移位166
4.15 如何在有規律的二維數組中進行高效的數據查找168
4.16 如何尋找最多的覆蓋點170
4.17 如何判斷請求能否在給定的存儲條件下完成171
4.18 如何按要求構造新的數組174
4.19 如何獲取最好的矩陣鏈相乘方法175
4.20 如何求解迷宮問題177
4.21 如何從三個有序數組中找出它們的公共元素180
4.22 如何對有大量重複數字的數組排序181
第5章 字元串187
5.1 如何求一個字元串的所有排列187
5.2 如何求兩個字元串的最長公共子串192
5.3 如何對字元串原地壓縮195
5.4 如何對字元串進行反轉197
5.5 如何判斷兩個字元串是否互為換位字元串199
5.6 如何判斷兩個字元串的包含關係201
5.7 如何對由大小寫字母組成的字元串排序204
5.8 如何消除字元串的內嵌括弧206
5.9 如何判斷字元串是否為整數207
5.10 如何實現字元串的匹配210
5.11 如何求字元串里的最長回文子串214
5.12 如何按照給定的字母序列對字元串排序220
5.13 如何判斷一個字元串是否包含重複字元223
5.14 如何刪除給定字元串中的指定字元225
5.15 如何找到由其他單詞組成的最長單詞227
5.16 如何統計字元串中連續的重複字元個數230
5.17 如何求最長遞增子序列的長度231
5.18 如何對字元串進行旋轉232
5.19 如何求解字元串的最長重複子串233
5.20 如何求解字元串中字典序最大的子序列238
5.21 如何判斷一個字元串是否由另外一個字元串旋轉得到240
5.22 如何去掉字元串的首尾空格併合並多個連續空格為一個241
5.23 如何求字元串的編輯距離243
5.24 如何求相對路徑245
5.25 如何查找到達目標詞的最短鏈長度247
第6章 基本數字運算250
6.1 如何判斷一個自然數是否為某個數的平方250
6.2 如何判斷一個數是否為2的n次方252
6.3 如何不使用除法操作符實現兩個正整數的除法254
6.4 如何

相關詞條

熱門詞條

聯絡我們