程序員面試算法寶典

程序員面試算法寶典

作者: 何昊
出版社: 機械工業
出版在: 2018-10-01
ISBN-13: 9787111607328
ISBN-10: 7111607325
裝訂格式: 平裝





內容描述


這是一本講解程序員面試算法的書。在寫法上,除了講解如何解答算法問題外,還引入了例子輔以說明,讓讀者能更容易理解。
本書將程序員面試筆試過程中各類算法類真題一網打盡。在題目的廣度上,通過各種渠道,搜集了近3年來多家IT企業面試算法高頻題目;在題目的深度上,本書由淺入深、庖丁解牛式地分析每一個題目,並提煉歸納,同時,引入例子與源代碼、時間復雜度與空間復雜度的分析。本書根據真題所屬知識點分門別類,結構合理,條理清晰,對於讀者進行學習與查閱意義重大。
本書是針對電腦相關專業畢業生面試筆試的求職用書,也可以作為本科生、研究生學習數據結構與算法的輔導書,同時也適合期望在電腦行業大顯身手的電腦愛好者閱讀。


目錄大綱


前言 
面試筆試經驗技巧篇 
經驗技巧1如何巧妙地回答面試官的問題? 
經驗技巧2如何回答技術性的問題? 
經驗技巧3如何回答非技術性問題? 
經驗技巧4如何回答快速估算類問題? 
經驗技巧5如何回答算法設計問題? 
經驗技巧6如何回答系統設計題? 
經驗技巧7如何解決求職中的時間衝突問題? 
經驗技巧8如果面試問題曾經遇見過,是否要告知面試官? 
經驗技巧9在被企業拒絕後是否可以再申請? 
經驗技巧10如何應對自己不會回答的問題? 
經驗技巧11如何應對面試官的“激將法”語言? 
經驗技巧12如何處理與面試官持不同觀點這個問題? 
經驗技巧13什麼是職場暗語? 
面試筆試真題解析篇 
第1章鍊錶 
1.1如何實現鍊錶的逆序 
1.2如何從無序鍊錶中移除重複項 
1.3如何計算兩個單鍊錶所代表的數之和 
1.4如何對鍊錶進行重新排序 
1.5如何找出單鍊錶中的倒數第k個元素 
1.6如何檢測一個較大的單鍊錶是否有環 
1.7如何把鍊錶相鄰元素翻轉 
1.8如何把鍊錶以K個結點為一組進行翻轉 
1.9如何合併兩個有序鍊錶 
1.10如何在只給定單鍊錶中某個結點的指針的情況下刪除該結點 
1.11如何判斷兩個單鍊錶(無環)是否相交 
1.12如何翻轉變異的鍊錶 
1.13如何展開鏈接列表 
第2章棧、隊列與哈希 
2.1如何實現棧 
2.2如何實現隊列 
2.3如何翻轉棧的所有元素 
2.4如何根據入棧序列判斷可能的出棧序列 
2.5如何用O(1)的時間複雜度求棧中最小元素 
2.6如何用兩個棧模擬隊列操作 
2.7如何設計一個排序系統 
2.8如何實現LRU緩存方案 
2.9如何從給定的車票中找出旅程 
2.10如何從數組中找出滿足a+b=c+d的兩個數對 
第3章二叉樹 
3.1二叉樹基礎知識 
3.2如何把一個有序整數數組放到二叉樹中 
3.3如何從頂部開始逐層打印二叉樹結點數據 
3.4如何求一棵二叉樹的最大子樹和 
3.5如何判斷兩棵二叉樹是否相等 
3.6如何把二叉樹轉換為雙向鏈 
3.7如何判斷一個數組是否為二元查找樹後序遍歷的序列 
3.8如何找出排序二叉樹上任意兩個結點的最近共同父結點 
3.9如何復制二叉樹 
3.10如何在二叉樹中找出一條路徑滿足路徑上所有結點的和等於給定的整數 
3.11如何對二叉樹進行鏡像反轉 
3.12如何在二叉排序樹中找出第一個大於中間值的結點 
3.13如何在二叉樹中找出路徑和的最大值 
3.14如何實現反向DNS查找緩存 
第4章數組 
4.1如何找出數組中唯一的重複元素 
4.2如何查找數組中元素的最大值和最小值 
4.3如何找出旋轉數組的最小元素 
4.4如何找出數組中丟失的數 
4.5如何找出數組中出現奇數次的數 
4.6如何找出數組中第k小的數 
4.7如何求數組中兩個元素的最小距離 
4.8如何求解最小三元組距離 
4.9如何求數組中絕對值最小的數 
4.10如何求數組連續最大和 
4.11如何找出數組中出現一次的數 
4.12如何在不排序的情況下 數組中的中位數 
4.13如何求集合的所有非空子集 
4.14如何對數組進行循環移位 
4.15如何在有規律的二維數組中進行高效的數據查找 
4.16如何尋找最多的覆蓋點 
4.17如何判斷請求能否在給定的存儲條件下完成 
4.18如何按要求構造新的數組 
4.19如何獲取最好的矩陣鏈相乘方法 
4.20如何求解迷宮問題 
4.21如何從三個有序數組中找出它們的公共元素 
4.22如何對有大量重複數字的數組排序 
第5章字符串 
5.1如何求一個字符串的所有排列 
5.2如何求兩個字符串的最長公共子串 
5.3如何對字符串原地壓縮 
5.4如何對字符串進行反轉 
5.5如何判斷兩個字符串是否互為換位字符串 
5.6如何判斷兩個字符串的包含關係 
5.7如何對由大小寫字母組成的字符串排序 
5.8如何消除字符串的內嵌括號 
5.9如何判斷字符串是否為整數 
5.10如何實現字符串的匹配 
5.11如何求字符串裡的最長回文子串 
5.12如何按照給定的字母序列對字符串排序 
5.13如何判 一個字符串是否包含重複字符 
5.14如何刪除給定字符串中的指定字符 
5.15如何找到由其他單詞組成的最長單詞 
5.16如何統計字符串中連續的重複字符個數 
5.17如何求最長遞增子序列的長度 
5.18如何對字符串進行旋轉 
5.19如何求解字符串的最長重複子串 
5.20如何求解字符串中字典序最大的子序列 
5.21如何判斷一個字符串是否由另外一個字符串旋轉得到 
5.22如何去掉字符串的首尾空格並合併多個連續空格為一個 
5.23如何求字符串的編輯距離 
5.24如何求相對路徑 
5.25如何查


作者介紹


猿媛之家成立於2015年8月,是一家致力於研究程序員人生規劃、程序員技能與培訓、程序員就業與發展的機構。旨在為廣大求職者提供求職一站式服務,為求職者量體裁衣,打造一套適合自己的求職解決方案。機構成員均畢業於國內“985”“211”高校的計算機相關專業,就職於BAT等頂尖IT企業。機構宗旨是“服務大眾、分層對待、整體提高、打造精品”,目標是“讓天下沒有找不到工作的程序員”。




相關書籍

給全端工程師的職涯生存筆記:從「履歷×面試×職場」打造無可取代的軟實力(iThome鐵人賽系列書)

作者 林鼎淵 (Dean Lin)

2018-10-01

無瑕的程式碼-敏捷軟體開發技巧守則 (Clean Code: A Handbook of Agile Software Craftsmanship)

作者 Robert C. Martin 戴于晉 博碩文化 譯

2018-10-01

Python 程序員面試算法寶典

作者 猿媛之家 組編 張波 楚秦 等

2018-10-01