(5min)1.自我介绍,简短介绍的了一下项目和工作,做的CV和嵌入式软件开发。
(5min)2.面试官介绍部门分布和业务分布,问想做哪一个方向的工作?
(15min)3.怎么理解嵌入式系统?这里结合自己的工作,从嵌入式设备,到嵌入式操作系统都讲了一下,提了一嘴调度算法,出现优先级反转的情况怎么解决,天花板调度协议也提了一嘴。
(15min)4.嵌入式操作系统和PC操作系统的区别?从指令集到指令架构,还有操作系统的功能,还有应用场景,回答的时候提了两个非常具体的应用场景。
(20min)5.手撕代码 Leetcode3. 无重复字符的最长子串 (Medium) 编译了三遍没过,改了一下语法错误,太久没敲,加上紧张,哈希表打成了unordered,定义哈希表打成了unordered<map> dict。犯傻了,好在最后改过来了,unordered_map<char, int> dict; 第四遍A了。养成良好的编码习惯,每步写注释,面试官真的会看。
(3min)6. 用的方法原理?用的双指针+哈希表,也就是滑动窗口法。
(2min)7. 你觉得难点在哪里?这里只讲了一下边界式怎么处理的,没有讲滑动窗口的动态调整过程(这里失误了,应该说的)。
(5min)8.C++中智能指针用过吗?是什么?有哪些?怎么理解智能指针?
(8min)9.你觉得C++中比较难的点在哪里?
答了两个,一个是赋值运算符重载的,讲了一下步骤,提了一下深拷贝,浅拷贝。二是多态性的底层原理实现,虚函数表,虚指针,提了一下重写和重载时,子类的虚函数表和虚指针式怎么变换的。
(2min)10.反问环节,简历要不要包装一下C++的项目,要。确认了一下部门的分布,工作地点在深圳,北京培训一年。