第1章 國內筆試面試風格及準備方法面試
--- 分享面試經驗,經過例題分析國內面試的風格及準備方法
· 1) C/C++部分:
實現 memcpy 函數
STL 中 vector 的實現原理
· 2)機率題部分:
給 N 張牌和一個隨機函數,設計一個算法對這堆牌進行洗牌
· 3)智力題部分
25 匹馬,5 個賽道,最少賽多少次找出前三
· 4)操做系統部分
進程和線程的區別和聯繫
· 5)大數據部分
100 億個整數,如何找到中位數
· 6)算法題部分
手寫快排
手寫堆
刷LintCode算法
第2章 C/C++面試知識點梳理數組
--- 本節經過真實的筆試、面試題講解 C++相關的基礎內容,包括各類關 鍵字的做用,字節對齊,智能指針,單例模式等
· 1) 敘述智能指針的原理
衍生出 STL 中 auto_ptr 以及 shared_ptr 的使用
若是出現循環引用如何處理?
· 2) C++單例模式寫法
衍生問題:如何定義一個只能在堆上定義對象的類?棧上呢?
· 3) Struct 的字節對齊問題
· 4) C 與 C++易混淆概念分析
引用和指針有什麼區別? const 和 define 有什麼區別? new 和 malloc 有什麼區別? define 和 inline 有什麼區別?
· 5) static 關鍵字用法總結
衍生問題:成員函數可否聲明爲 static 和 const 的呢? static 函數可否調用非 static 函數
· 6) const 關鍵字用法
· 7) C++四種強制類型轉換 網絡
第3章 C/C++面試知識點梳理下
--- 本節詳細講解 C/C++面試中很是高頻的虛函數、虛繼承以及 C++對象 內存模型,今後遇到這類問題再也不「虛」!
· 1) C++虛函數詳解
什麼是虛函數,有什麼做用? 數據結構
虛函數實現原理:包括虛函數表、虛函數指針等函數
衍生問題:大數據
爲何 C++裏訪問虛函數比訪問普通函數慢? url
爲何須要虛析構函數?spa
內聯函數、構造函數、靜態成員函數能夠是虛函數嗎?操作系統
構造函數中能夠調用虛函數嗎?
· 2) C++虛繼承詳解
爲何須要虛繼承? 虛繼承實現原理解析
· 3) C++對象內存模型詳解
融合虛函數、虛繼承,講解 C++對象模型
第4章 智力題
--- 本節詳細講解國內面試中高頻的智力題, 並總結常見的解決這類問題的思路與技巧
· 10+個常見智力面試題
第5章 機率題與操做系統題
· 操做系統相關的面試問題
第6章 面向對象設計
· 一、請設計一個抽象類,用來支持有序數組歸併任務
· 二、請設計一個LRU Cache
· 三、設計一個在線聊天系統
· 四、設計一個基於內存的簡單文件系統
· 五、設計一個支持多終端的日誌打印系統(如向文件打印、向網絡打印、向屏幕打印)
· 六、設計一個棋盤遊戲
· 七、請設計一個數據結構,它可以支持插入、刪除、最大值、最小值、隨機返回一個數的操做
· 八、設計一個函數,使得它在n毫秒內最多訪問M次
第7章 海量數據處理問題 · 一、Map-Reduce原理 · 二、BloomFilter原理 · 三、Trie樹原理 · 四、兩個大文件,每一個文件裏都存有上億個url,怎麼找到重複的url · 五、給百度一天的querylog,如何找到一天中出現頻率最多的k個query