猿辅导服务端开发面经
一面
- 项目介绍
- 进程和线程的区别
- Reactor模式是怎样的?
- epoll和select相比有什么优势?
- sql:一个表A,里面有学号(sid),班级(class)和分数(score),求出每个班级及格人数,select class, count(sid) from A where score >= 60 group by class. 如何建立索引?class是否可以使用索引?联合索引,最左前缀索引。。。
- 将一个链表按照值的奇偶性分成两个链表,要求两个结果链表的元素是有序的
- 二叉树从根到节点的路径和等于target的所有路径
二面
- 镜像二叉树
- 一个链表,k个为一组,组内反转,从尾部算起,不足k个不反转,1->2->3->4->5->6->7->8, k = 2,则1->2->5->4->3->8->7->6
- chmod 754 xxx是什么意思
- fork干了什么,写时复制是哪个进程来复制,复制出来的新页给谁用
三面(有些不太记得了)
- C++智能指针有哪些,使用shared_ptr会出现什么问题?
- 说说线程和协程
- 内存中的索引结构为什么使用红黑树而不是B+树?
- Reactor模式和普通的BIO模式有什么不同
- k个有序数组,如何进行归并排序?复杂度是多少?
- 一个m*n的二维数组,以蛇形升序排列,判断一个数target是否存在于这个二维数组中?
1 | 2 | 3 | 4 |
8 | 7 | 6 | 5 |
9 | 10 | 11 | 12 |
16 | 15 | 14 | 13 |
HR面:问了几个常规问题,然后HR一直等着我问问题。。。