元戎启行 软件工程师(infra os) 一二三四面凉经
最近看到很多牛友问,还是凭借零碎的记忆写下,因为一面和四面基本隔了一个多月好像,大多数都忘了。
从二面到四面基本八股都问的不多了,这里整合到一起,整体八股问的还是少,可能和我个人经历(0实习0项目的菜逼acmer)有关,也可能公司就不问。
岗位是基础架构 部门 的 车载操作系统 岗
算法:
1面. 链表反转;还有一个逻辑题,一些逻辑,让你写成一句话(不能aa?bb:cc这样)
分类讨论,除去无效情况 写成或和与的形式
2面. 一个序列,找最长山峰
2面. 一个序列,找最长山峰
正反求最长上升子序列长度即可,二分或者线段树优化成logn
3面. 一维数轴很多运动的点,问总相交次数
3面. 一维数轴很多运动的点,问总相交次数
速度或者坐标排序后,树状数组统计逆序对即可,注意速度和坐标相同的特殊情况
4面. 多个字符串,首尾相同可以相联,然后问能不能一次把所有的不重复连接完
4面. 多个字符串,首尾相同可以相联,然后问能不能一次把所有的不重复连接完
把题意转成建个图跑一遍
八股(零碎记忆,123面整合到一起了,其实没问多少):
1.死锁,如何检测死锁
死锁的四个条件;然后从预防(银行家算法)和检测(跑这个图,看有没有环)死锁。
2.因为还是写了个server,问如果向server短期内大量建立连接并立马断开,怎么处理?
答了几种方法,他说都不太对 哈哈哈
3.C++多态是什么?
虚函数那一套讲讲
4.对c++新特性有哪些了解?
5.c++新特性的异步了解吗?
6.base类有个虚函数,derived类没有,问一共 虚函数表有几个
我开始说一个,derived类的vptr也是指向base的那个表的,因为之前看博客别人这样画的
然后他说是两个,没细问了
7.传一个派生类指针,判断是哪个派生类?
我说用dynamic_cast强转成多种派生,看会不会变成nullptr
8.make_shared好对吧,好在哪?
没答在点子上,我想他想问的点,应该是说 控制块和实际对象在make_shared中内存是一起创建的,不会分开开内存,效率会更好一些
9.一个类,设计一个成员函数,返回一个shared_ptr的智能指针,指针指向自己。
我直接说用this指针创建了,他说不行这样,这样每个指针的控制块count都不一样了啊
然后本来想说直接建立个成员地址到count的映射,成员函数根据count大小分类再创建指针
然后他说这个和c++没什么关系,没工程经验应该也不太会。。。。。。
10.vector ?
忘了是问什么,应该是emplace_back和普通的push的拷贝和移动构造的调用情况。
11.先写这些,后面想起来再写上了
其他:
1.有没有看过一些开源代码库?
这个两个面试官都问了,我说STL和linux 源码看过其中几个小版块,没继续问,因为面对车载os岗,我猜ros rtos这种可能会再问问?
2.竞赛经历
两个面试官聊了下,应该是没啥聊的了哈哈哈
3.为什么考研,未来打算继续考研吗
总结:
1.四面完虽然感觉题写的一般,但每轮都写出了,感觉应该还好吧,都在看深圳的租房了,结果过了两天和我说挂了。。。。
2.我个人认为主要被挂的原因是三面和四面的题,写的不太流畅
这两个题虽然思路秒出,但三面那个题,我一开始一直是把正反速度分开算的,后面面试官一直提示才意识到和正反没关系,最后卡着时间写完;四面那个中间脑抽,想换个更优美的写法,结果脑抽写假了被面试官点了下。
3. 然后就是,0实习 0项目 基础一般,c++虽然问的不多,但三面我答得并不好,现在想想除了其中一两个,大多数是很基础的问题
4. 没去还是挺遗憾的,二面面试官和我说的工作内容我还是蛮感兴趣的,而且听说很多金牌爷巨巨
5. 基础要掌握好,coding不一定要多快,但要不慌不忙,尽量0bug