一面:
面试时间:1个小时10分钟
(1)自我介绍
(2)介绍项目相关技术
(3)数据库的隔离级别
(4)redo log 和 undo log
(5)zookeeper分布式锁
(6)linux常用命令
(7)java中的堆和栈
(8)编程题
1)有 time ip path这三个字段的日志数据,请使用shell进行编程,求ip的top10。(我说好久没写shell了,有点忘记怎么编程了)
2)有一个数组,请找出a+b+c=k的组合个数
3)一个数组,请求出最大的子序列和。(我一开始写了个空间复杂度为O(n)的DP,之后面试官让我讲出空间复杂度为O(1)的DP)。
二面:
面试时间:1小时
(1)自我介绍
(2)问项目
(3)目前学校教了哪些课程(我们学校还没开操作系统和计网这两门课,但是我和面试官说我有学过计网和操作系统,但是之后一个都没问....)
(4)C++的多态(我的技术栈是java,可能是面试官看我得过一些C++编程比赛的奖项,就突然问了C++)
(5)如果一个sql运行得非常慢,如何解决
(6)为什么mysql索引要使用b+树,为什么不使用红黑树
(7)开始做题
1)例如数组a = 1, 2, 3, 4, 5是有序的,任意旋转可能得到a = 4, 5, 1, 2, 3 ,在旋转后的数组a中搜索是否存在目标值n,如果存在返回下标,不存在返回-1
我说了一个O(n)的算法,面试官让我再想想,我觉得是二分,但是不知道怎么解决。 然后面试官就说下一题了。
2)有一批隔板,其高度用数组表示,相邻两隔板之间距离均为1,隔板本身不占体积,问下了足够多的雨之后,隔板中最多能蓄多少水?
样例: 输入:[3,2,5,4,6,2] 输出: 18
3)给你一篇英语课文,你得从里面去掉一些字符,使得最终只剩下指定数量的字符(假设k个),并且字符间的顺序不能变,问你怎么样使得剩下的课文内容字典序最小。
样例:输入:k=3 课文:abcdeafg
输出:aaf
面试官看还有时间,然后就又问了一些问题
(8)如果有10亿条数据,需要求出用户数,怎么解决。(我说了一个方法,面试官问还有其他的吗,然后我回答不知道.....)
三面:
面试时间:90min
(1)求出一个数的下一个比他大的数。例如:1234下一个数就是1243
这道题之前做过,但是我有点忘了,推了挺久的。
(2)a+b+c=0(leetcode经典题目了,直接秒了)
(3)给n个有序数组,求出他们的交集。(我用hash表做的,但是肯定还有其他的优化方法,面试官说时间不够了,就让我按自己思路写了)
(4)思维题
A B C D 要过独木桥过桥时间分别为1 2 4 8,过桥时只能用灯笼,并且只有一个灯笼,可以两个人同时过桥,求最短过桥时间。
想了挺久,这道题要是画图就很好解决,但是我都是在脑子想的,所以一直没想出最优解。(面试官疯狂提示,但是我还是想不出来,还是太菜了)
上面已经耗时70min了,所以面试官又问了一些八股文。
(5)进程的通信方式
(6)命名管道与普通管道的区别
(7)tcp的三次握手和四次挥手。
作者:小王今天学习了吗
链接:https://www.nowcoder.com/discuss/387850?channel=-1&source_id=discuss_terminal_discuss_history_nctrack
来源:牛客网
一面:当时我没找到视频面的入口,结果是电话面的,又因为紧张所以问题基本忘了,但是面试官超级nice,问的都是一些概念性的问题~
二面:
1、为什么不读博?(我脑子一蒙,说自己的科研能力到头了,当时我感觉我的面试也到头了)
2、TCP三次握手、四次挥手
3、TCP序号的作用(没答全)
4、TCP滑动窗口,拥塞控制
5、epoll实现机制,为什么返回的都是就绪的,和select的区别,为什么select不能做到
6、为什么采用单线程处理连接线程池处理事务的模式(我的小项目)
7、高并发下还有哪些模式?
8、C++多态实现机制
9、为什么能实现运行时多态
10、C++存储数据区域
11、C和C++ static的作用。只答了c++的
12、static存放在哪个区?
13、十亿QQ号,查找某个QQ号在不在里面
14、常用的STL
15、常用STL底层实现
16、都看过什么书,为了做开发做了哪些准备?
17、 atoi函数的实现
三面:
1、一道编程题,数列相关,只通过了百分之三十
2、问了一下平时怎么调试,内存不断增长的话怎么判断哪里出了问题,调试方面问了很多,用了什么调试方式(我基本只打断点,所以很尴尬,全程啥也不会)
3、虚拟内存寻址空间大小
4、围绕着这道编程题展开了一堆问题,但是我已经忘了。。
5、浏览器输入url按下回车发生了什么
6、40亿个QQ号怎么存储
8、CPU调度基本单位?
9、平时关注那些库?