大部分的面试题都在围绕一个点:基于各种数据结构上的增删改查。如字符串的查找翻转,链表的查找遍历合并删除,树和图的查找遍历,后来为了更好的查找,我们想到了排序,排序仍然不够,我们有了贪心、动态规划,再后来东西多了,于是有了海量数据处理,资源有限导致人们彼此竞争,出现了博弈组合概率。
一般来说,笔试面试中常考的知识点有:
- 数据结构:字符串、链表、数组、堆、哈希表、树(Trie树、后缀树、红黑树、B树、R树)、图(遍历:BFS、DFS、Dijkstra);
- 算法:基于各个数据结构的查找(二分、二叉树)、排序、遍历,分治、递归、回溯,贪心算法、动态规划、海量数据,外加字符串匹配和资源调优;
- 数学:排列组合概率;
- 操作系统、网络协议、数据库等等。