九章算法: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

相关文章
相关标签/搜索