阅读 3416

2018秋招面经:斗鱼、滴滴、百度、美团、小米、腾讯(全offer)|掘金技术征文

一、斗鱼(9.8,现场笔试+技术面+hr面)

现场笔试:(题目比较基础)

1、十几道C++基础简答题或改错题
2、一道字符串分割的算法题
3、一道string类的实现
4、一道快排的实现

斗鱼技术面:(2h+,其实就是将笔试题从上往下问,并且做很多拓展和延伸,记录一些我有印象的)

1、c++多态的种类、C语言的多态怎么实现
2、struct与类的区别
3、union和struct的区别,union如何知道当前使用的是哪一个元素,如何设计
4、vector和map删除时,迭代器失效如何解决
5、线程安全的单例模式(注意volatile和double-check)
6、排序时衡量性能的标准
7、复杂的字节对齐计算(需要分32位和64位讨论,但两种系统最终结果相同,pragma pack 1的应用场景(节省空间,公司统一标准)?
8、用户有两个进程,分别运行while(1){},系统如何切换(时钟中断,进一步延伸到内中断,外中断)
9、项目中有用到模拟退火算法,让我讲了下思路与实现
10、虚函数的实现

hr面:(0.5h)

1、个人情况
2、家庭情况
3、手上offer情况
4、发展规划

二、 滴滴(9.12,3技术+1hr面)

技术一面(50min+, 只记录一些有印象的):

1、项目
2、B+树、B-树的区别
3、数据库隔离级别,幻读和不可重复读的区别
4、有hell, well, hello, world等字符串组,现在问能否拼接成helloworld,代码实现
5、快排
6、线程安全的单例模式

技术二面(1h15min, 纯怼算法和智力题,好难):

1、25匹马赛跑,有一个赛场,只有五个赛道,没有计时器,只能通过目测来记录快慢,求出求3快的马要多少场比赛?
2、kmp算法next数组的求解思路
3、数组中有三个数字出现超过3/4,求着三个数字
4、1到n+2个数组中缺了两个数,如何用O(n)时间,O(1)空间找到这两个数字
5、一条线段长为1,随机选两个点,将改线段分为三段,三段能成三角形的概率是多少?
6、有一个教授,他三个学生,脑袋背后分别各写了一个数字,其中一个数字是另外两个数字的和,经过几轮后,有一个学生猜出了自己的数字请问是什么原因?
7、B+树做索引时,B+树通常高度为多少层?要参考哪些条件?

技术三面:(40min)

1、问我喜欢什么运动,说篮球,聊了篮球和工作,大概近10分钟,后来知道面试官以前是校队,校赛拿mvp的大神,怪不得问我拿过什么篮球的荣誉
2、一个3L的杯子,一个5L的杯子,如何倒出4L的水,要求两种方法
3、情景题:周一领导布置任务,周五完成,周三发现完成不了,你会怎么处理
4、对BAT三家的看法,现在看好谁
5、介意学机器学习吗?(怎么可能介意,求之不得)
6、问我有什么问题要问(我说这不是技术面吗?怎么没怎么问技术,结果面试官加了第七题)
7、二维数组行优先读取和列优先读取哪个快,从操作系统层面解释(从减少缺页中断的角度出发即可)

hr面(都大同小异)

三、百度(9.17/9.19, 三轮技术面,没有hr面)

技术一面(1.5h,面试官平时是负责终面的boss,聊的不完全是技术,有很多内容记不住了)

1、聊了项目。面试官很感兴趣,聊了半个小时
2、操作系统,null指针为什么不可访问(涉及到段页式内存管理中,内存分配问题)
3、socket syn攻击原理,超时重传的次数及时间间隔

技术二面(50min)

1、项目
2、select/poll/epoll
3、线程池
4、ipc,以及共享内存使用的时候需要注意什么
5、手写代码,题目记不清了

技术三面(电话面35min左右)

1、简历细细过一遍
2、cat file | grep x 创建几个进程 他们是什么关系
3、父子进程间,子进程退出后会发生什么
4、如果父进程不需要捕获子进程退出消息怎么办
5、pcb包括什么
6、有一个文件,每一行都有一个IP范围,以及对应城市。你需要检测,同一个城市的IP是否冲突。不同的城市IP相同不算冲突。
7、未来的打算,自我评价,职业生涯规划

四、美团(9.19/9.21)

初试一面

1、自我介绍
2、项目(问的很深)
3、数据库实现原理 B+树 B-树区别
4、数据库索引种类
5、接口响应时间由20 ms偶发提高到1000ms可能是什么原因
6、左联结,右联结,数据库隔离级别
7、数组中找出和为target的两个数的位置
8、Linux命令
9、对Java的了解
还有一些忘了

初试二面:

1、自我介绍
2、项目
3、模拟退火算法,爬山算法,应用场景。。
4、tcp udp,udp的各种应用场景,udp如何实现可靠传输
5、syn攻击
6、黑客怎么越过防火墙,对防火墙内部计算机进行攻击
7、设计餐馆的数据库,需要几张表
8、stl有哪些优缺点 为什么有时候很慢
9、设计模式,观察者模式
10、堆排的实现
11、聊了下个人情况

复试一面:

1、自我介绍
2、socket11种状态,详细介绍
3、阻塞与非阻塞
4、同步与异步
5、connect可以异步吗?
6、如何看待上层应用编程与低层架构编程?
7、看什么书,怎么学习的
还有一些忘记了

复试二面(hr面)

大同小异,不过美团hr给我印象特别好,特别主动介绍了公司的各种情况,好评

五、小米(9.20,只有两轮技术面)

技术一面(35min, 体验不好。一个标间里面试,hr在旁边整理资料,下一个面试者竟然就在房间看我们面试。。)

1、自我介绍
2、介绍操作系统的段页式内存管理
3、socket三次握手,以及半连接的含义,可能出现的问题,以及处理方案
4、写代码,正则表达式模式匹配

技术二面(35min):

1、自我介绍
2、模拟退火算法介绍
3、手写代码:8*8的网格中,一个皇后选择一个位置后,她横竖斜三条直线上都不允许放其他皇后,问放8个皇后有几种方式
4、设计题,有一个车库,里面可以停大车和小车,可以自己拓展需要的信息(我拓展了计费等服务)

六、腾讯(9.21/9.23/9.24,两轮技术面+hr面):

技术一面(45min左右):

1、自我介绍
2、项目
3、进程与线程的区别(这里我说的很细致)
4、管道一般用途,如何用管道实现非亲缘进程间通信(有名管道)
5、实现memcpy(注意区分pSrc和pDes重叠的情况)
6、环形链表检测,以及入口求解,手推公式
7、智力题:A房间三个开关,控制着B房间三个灯,只允许进一次A,进一次B,如何确定开关与电灯的对应情况
8、问其他offer情况

技术二面(45min左右):

1、最满意的项目,详细介绍
2、手写代码:有一个数字N,由1,2,3,4四种数字组成,请问怎么调整其顺序,可以使其整除7
3、手写代码:map中,删除key值为素数的元素,
4、socket中,缓冲区只有2k,要接受4k的数据,怎么处理,代码实现
5、linux里ipc有哪些

hr面(18min)

1、自我介绍
2、如果有人质疑你非计算机专业的,你会怎么看
3、学习了哪些课程,怎么自学
4、家庭情况,职业规划
5、对我骑行2000km的经历感兴趣,聊了下
6、让我提问

七、华为(华为暑期实习生,只参加了实习答辩)

写在最后

所有公司投递岗位的都是C++软件研发工程师/后台研发工程师。截止2017.9.26,确认的有华为、斗鱼、美团、百度。等通知的有腾讯,小米,滴滴。由于已经有一些offer确认,京东、招银网络、网易互娱面试没有去参加了。附自己博客地址,里面有我整理的一些基础知识和面试题,个人觉得应该对大家有所帮助:www.jianshu.com/u/2dab0cda8…

本人非计算机专业出身,读研阶段才开始接触编程,不过读研期间付出了比别人更多的努力。因此,付出总会有回报的,希望大家也继续努力,也预祝找工作的同学也都能拿到满意offer,加油!

2017.9.27 更新:已收腾讯sp,决定去鹅厂了~

附掘金秋招征文大赛链接

评论