秋招01-鉴智机器人1/2面-自动驾驶软件研发
1面
鉴智机器人1面,投的自动驾驶软件研发工程师,全程一个小时,八股文答的不是很好,算法思路也不是很好。
自我介绍+项目介绍(webserver)。
1、项目
(1)线程池中请求队列问题,socket是否有先后的顺序关系?(先产生socket而后加入队列?)
(2)请求队列存在几种关系(写?读读?)? 队列是否可以通过无锁条件设置?
2、C++
(1)看过哪些有关C++的书?
(2)C++11的特性有哪些?
(3)auto和decltype的区别?
(4)左值和右值引用?为什么有右值引用?
(5)模板函数和模板类?(全特化和偏特化)
(6)lambda函数的介绍?
3、算法
(1)有两个数组,,数组的元素“大小”一一对应,T1间元素不可比较,但可以移动或者复制,T2间元素可比较,但 T2 数组元素不可移动或者复制,设计一个排序函数,能排序 T1 数组?
template <class T1, class T2> void sort(vector<T1>& a, const vector<T2>& b) { }
(2)排序,说说有哪些排序?时间复杂度最好和最坏?快排的思路?
(3)二叉搜索树?(性质)
(4)双向链表的删除target元素?(特殊情况的处理,设置双哑结点)
4、反问
(1)整理面试知识,加深学习,面试就是很好的学习方式(多面试)。
(2)对于学习的建议(计算机基础知识学习很重要,但是也要多关注行业发展)
2面
自我介绍+项目介绍(webserver)。
1、项目问题
(1)HTTP解析和响应,线程池相关。
(2)网络编码。
(3)TCP和UDP详细说说。(粘包)
2、读程序,程序中错误和不足
class A { public: print() { printf("A"); } }; class B :public A{ public: print() { printf("B"); } }; int main() { A* a = new B(); a.print(); }3、算法
(1)实现一个函数输入字符串如“he is a good man”输出字符串“man good a is he”。
总的来说项目问得多,需要深挖自己的项目,然后就在写算法时要注意细节,很简单的题,在写的过程中可能会出现出现意向不到的错误。
#面经#