基础知识很重要,语言方面多看书,数据结构与算法不如去刷LeetCode
语言
只关注那些和我有关的语言,Perl,C#,object C啥的就不考虑了
C++
语言面试的三种类型
- 直接问对C++语言的理解:类型转换的关键字,变量申请的顺序等,sizeof相关
- 给出实现准备好的代码:要求对考点有较为深刻的认识,推荐书籍:Effective C++突击时用,C++Primer学习时用,Inside C++ Object Model对类的理解,The C++ Programming Language深入理解
- 写代码定义好的一个类型的成员函数:涉及重载,析构,构造等
需要注意异常安全性,例如内存不足会带来什么后果之类的
数据结构
常见数据结构
- 数组
- 字符串
- 链表
- 树
- 栈
- 队列
tips:
- 数组:从后往前复制省空间
- 链表:单向链表,环链表,双向链表,复杂链表
- 树:红黑树,堆,树的遍历,树的重构
- 栈与队列:
算法与数据操作
常见算法
- 查找:顺序,二分,查找,二叉:要能够手写二分
- 排序:插入排序,冒泡排序,归并排序,快速排序
- 递归与循环:一般递归比较简洁,优先选择递归
- 位运算