9.22百度一二三面面经(北京现场)C++开发岗
算法:
1. 进制转换1.10进制转2进制
2. 10进制数转成A~Z表示,A表示1,Z表示26,,27表示为AA,输入为正整数
3. 有一个由0、1、2组成的数组,把0放在1前面,1放在2前面
基础知识:
1. 网络7层模型,各层协议,HTTP和HTTPS区别
2. 忘了。。。
数学题:
1. 1000瓶水里一瓶是毒药,用老鼠实验,最少需要几只老鼠可以知道哪瓶是毒药
2. 有三扇门,其中一扇后面有奖品,你现在选定一扇门,然后会告诉你另外两扇门中的一扇门是空的,这时你选不选择换你所选定的门(概率题)
二面 约80min
聊了聊嵌入式开发的项目
算法:
1. 二维坐标系里给定4个点的标,判断是不是构成矩形(这个我给面试官详细解释并证明了我的三行代码的正确性)
2. 给定一个query的字符串,一个test的字符串,要匹配test的字符串和query的最大公共子串(我直接当作经典的最长公共子串做了,基本没问题,可能有别的方法可以优化)
基础:
1. 线程和进程,死锁,解决方法
2. memcpy和strcpy的区别
3. 如何最精确的计算一个数的70%的值(就是0.7x如何精度高)
4. 程序内存里的堆和栈
5. LRU的实现(这个也是在面试官引导下一步步优化)
6. 类的理解,访问属性和继承
7. TCP和UDP
8. B树、B+树
9. 还有不少想不起来了,我真的健忘。。。
三面 约120min
项目、实习都先聊了聊
算法:
1. 求10万以内的所有素数,尽可能快(包括用到排除偶数和结尾为0和5 的数之类工程化的方法,当时我还提了另一个角度的,又讨论了一下)
基础:
1. 银行家算法具体
2. 纯虚函数、与虚函数对比,应用情景
3. 放弃了。。。我想不起来了
数学:
100个球,两人轮流取,每次取1~5个,取最后球的人获胜,先取的人取几个能赢
其他(至少1个小时):
1. 一个非技术的应用题(写计划书?策划书?一个组织方案?搞不清算哪种):上级(面试官)交给你一个任务,让你把某个小区的所有住户的窗户擦干净,你来计划好整个方案和细节。其中包括每个步骤该干啥,具体怎么干等等,反正这题至少说了半个小时,真的面试官会扣非常多的细节,小到雇人来擦玻璃,如果人家没有擦好,怎么样判定需要惩罚,脏了几块玻璃算做得不好,那多少钱来作为奖金,多少比例作为惩罚等等。。。(反正我也不知道为啥问这种问题)
2. 然后是学习经历、社团活动、项目中的困难和记忆点、三观、兴趣爱好、有没有想放弃却坚持下来的,有没有最后还是没坚持下去的,有没有记忆深刻的学习经历,什么是做过最大胆的事等等。。。真的无所不问
#百度##C++工程师##面经##校招#