1. Linux 指令
1. grep
2. sed
3. find
4. iostat/netstat
5. top
6. awk
2. 容器
2.1 vector底层
1. 扩容
2. 迭代器失效
2.2 hashmap底层
2.3 树,二叉树,AVL,红黑树,B+树,B树,LSM树
1. AVL vs 红黑树
2. B+树 vs B 树
3. 设计模式
1. 手写单例(必问)
2. 简单工厂,工厂方法
4. 分布式
1. CAP,BASE
2. 分布式事务,两阶段,三阶段
3. Raft基本流程,选主,日志复制,脑裂之后流程
4. 一致性hash
5. Leetcode算法
字节和外企较难,其他一般般。参考各公司最喜欢的考题:CodeTop企业题库
5.1 链表
1. 反转、每K个反转(字节最爱)
2. 环的入口
3. 删除重复节点
4. 链表快排/归并排序
5.2 二叉树
1. 二叉树遍历(前中后递归/非递归遍历)
2. 二叉树重建(前中序,中后序)
3. 最大路径和
4. 公共祖先
5.3 排序
1. 第K大/小
2. 两个数组第K大
3. n2,nlogn,n
5.4 动态规划
一般记住几个常见的模板就行,如2维dp
1. 最长公共子串
2. 最长上升子序列
3. 换零钱及其变种
4. 01背包
5. 回文子串及其变种(如区间[i,j]符合某某条件)
6. 矩阵连乘,加括号
7. 编辑距离
5.5 排列
1. 全排列,无重复
2. 下一个排列
3. 洗牌算法
5.7 其他
1. LRU
2. 单调栈,接雨水
3. 位运算,子网掩码,只出现一次的数...
4. 广度搜索+记忆化数组,求最短路径
5. DFS,暴力解法,骗分