百度一面二面面经

百度小哥人挺好的。

一二面都是一个小时多一点,只记得一些大概问题了,不得不说哈,面试官人真的很好,最后还给我说你没有做过项目,其实投测开概率会大一点。

一面(1h20min)
首先就是自我介绍了,巴拉巴拉一大堆,最后问为什么不是学这个的想搞这个,随便扯了一下,然后介绍了自己自学的内容。

介绍下stl里面有多少种容器,各自的特点是什么?
答:说了vector、list、deque、map、栈和队列、哈希表,然后分别说了它们的存储特点,在内存中是怎么实现增加、删除操作的,主要是说下扩容的时候怎么处理,以及新元素进入之后的存储方式。

刚才说了map和哈希表,介绍一下怎么实现的?
答:然后就说了底层是有两种方式,一是红黑树、然后还有就是哈希表,哈希表使用开链存储的方式解决冲突的,说了红黑树的基本特性,然后问一下红黑树怎么保持平衡,写了一下红黑树的四种旋转的代码中最简单的一个(让我自己选得,哈哈),然后问了红黑树和二叉平衡树有什么区别,然后说了二叉平衡树的要求,然后平衡严格度高于红黑树,写了二叉平衡树的节点结构,写了二叉平衡树的左旋代码。

介绍一下CNN、LSTM?(因为提过自己做过一些相关的)
答:然后就说了一下CNN的卷积层、池化层,说了一下怎么分类,然后介绍了LSTM的记忆单元和作用。

介绍一下排序算法?
答: 然后把所有的排序算法都说了一遍,然后让我写了一个快速排序,问我怎么保证选择的数字比较优秀,这个刚好之前看过,就说了一下三个数选择中位数的那个优化办法,然后又写了一下swap函数。

介绍一下图和图的遍历?
答:然后就说了图有领结矩阵和邻接表两种方式,然后说了深度优先遍历和广度优先遍历。

问了一些计算机网络和操作系统和设计模式的?
答:当然有鼎鼎大名的三次握手和四次挥手,还问我各个环节出现各种情况,计算机是怎么处理的,比如第几次握手的时候失联,问了一些http的内容。问了设计模式单例模式(我自己说的我只对这个了解),说了一些线程和进程,两者怎么通信。

一面基本就到这里了。

二面(1h10min)

永远是自我介绍打头。

基础问题和上面差不多,不过这次问的问题更细节,然后考了我几个题,都是有点结合实际的,不是单纯的刷面经就ok得了,比如大数据处理的时候,传入的数据量的大小波动很大,怎么合理的分配这个空间,还有就是问了我两个智力题(记忆犹新,字节面试的时候也问了智力题,还刷了两道题),一个是求概率的,一个是问怎么翻牌的,然后还问了我一个自定义的结构在内存中占据的字节,这个明显是考字节对齐的,但是因为我忘记了各种元素在内存中占据的字节数,所以答错了,然后还问了指针和引用的区别,以及指针一般占据多少空间,为什么需要指向指针的指针,还给了我一个程序(贼尴尬,我看半天说我觉得程序没错),面试小哥一脸懵逼的告诉我本来程序就没错,是让你找可能出现错误的地方,然后指出了空指针,还有就是直接复制对于字符串来说可能有‘/0’没有复制的问题,然后就找不出来了,小哥人很好,一直在引导我,就记得这些了,然后小哥和我说我基础太差了,一点不扎实,很多细节都不清楚,想搞后台开发会很难,而且我也没有项目,很感激面试官给我指出我的缺陷在哪里,毕竟自学还是不成体系,最后问我去不去搞测开,然后说帮我看看,看了一会又说不行呀,你来不及了,明天就是三面了,时间上赶不上,然后就谢谢面试官小哥的好意,最后就结束了百度的面试。