九章算法:BAT國內班 - 課程大綱

第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

相關文章
相關標籤/搜索