首先是在实习僧上投的简历,第一周因为手机问题没有接到电话,第二周才打过去约到了第二天上午十点面试。
第一次去百度这样的大公司面试,讲真还是很紧张的,提前快一个小时就到地方了,然后因为那地儿实在太堵了,一面的面试官堵在路上了,所以等到十一点多才正式开始面试,结果一天就面了三面……确实有点累,面试完手机还没电自动关机了,身上也没有现金,只有个公交卡,靠着我顽强的生存欲望找到了地铁站才回到学校:),趁着脑袋里还能记着住点今天面试的东西,赶紧总结一下,不敢说是面经,只能算是记录再加上自己的一些反思,不过还是学到了很多东西,也认识到自己很多的不足,还是蛮感谢遇到的三位面试官的:)。
面试职位:知识图谱部,知识图谱检索架构研发实习生
问题
【一面】
先问的关于简历上贴的项目的问题比较多
比如问了我一些编译原理实际能够应用在哪些场景,解决哪些有价值问题,另外让我在纸上设计了一个符号表的结构,基本上都是从项目里衍生出来的问题
- 计算机网络分层、TCP/IP协议栈的主要协议
- TCP三次握手的过程以及为什么需要三次握手
- 以抓包为例,抓包程序在执行的时候实际需要哪些资源
[手写代码]向有序数组中插入数
完成之后还在此前提上加入了数组有限(虽然坑是我自己挖的)、填充满了需要扩充数组等限制条件
一面的时候感觉还是挺轻松的,主要是因为问的问题比较基础,一面面完了之后面试官还带我在食堂吃了一顿饭:),顺便感叹一下大公司的人真的好多啊
【二面】
- 进程和线程的区别是什么
- 多线程的优势是什么,为什么需要线程
- C++的右值引用的应用
- 如何用其他方式实现类似右值引用能够带来的功能
- 析构函数可以是虚函数吗,为什么
- 构造函数可以是虚函数吗,为什么
- 你会如何设计内存分配,可以尽量解决释放内存之后的碎片内存问题
假设存在一亿篇文章,如何设计能够根据规定的关键字选出相关的文章并根据相关度排序打分
其实这题原本是面试官问我倒排索引的时候,但是我不知道倒排索引,于是就变成了一道这样的场景题,过程就是磕磕盼盼然后面试官一直引导,过程收获还是蛮多的
[手写代码]二叉树的非递归中序遍历
面试前几天刚在lc上刷过了,很舒服:)
二面的时候已经有些吃力了,我感觉很多地方我答得都不好,好几个问题都是面试官不断地引导我才能答出来的,不过还是混到了三面……
【三面】
介绍自己,以及自己的优缺点
确实很不擅长这个,感觉以后还是写个模版然后每次说一样的话也比说不出来好:(
- 希望在实习中得到什么,以及对实习有什么要求
- 自己认为与部门中的项目有什么关联(可以具体做些什么)
- 实习时间相关的问题
十亿个32bit无序整数集合,求重复出现的整数
连着确实却是会出现没有脑子的情况……做这题的时候我已经想不起来1亿=10的多少次方了:(,这题的重点不是算法,而是采用什么结构存储,并且个数的量级会决定采用哪种方式使存储空间最小,主要还是一种看待问题的方式和思路吧,收获还挺多的,比如很多时候不能按直观的想法来,还是需要具体计算或者测试
给定一个多边形所有点的坐标,给定一个另外一个点,判断该点在多边形内部还是外部
还是只需要给出思路,这题确实一直没有思路:),面试官提醒了好几次才知道该怎么做,具体就是先解决凸多边形条件下的判断,再尝试解决凹多边形下的判断,不过最后并没有到很细节的地方,基本上只是知道了大概思路。收获就是不要一开始就想着一口吃成个大胖子:),饭要一口一口吃,问题要一个一个解决:),大致方向是通过点和中点的连线是否和边相交判断,以及如何判断两条线是否相交来判断点的位置
三面的时候事后想想感觉很多时候都没有脑子了,不过自己的思路也出现了问题,还是要多锻炼
总结与反思
还有一些问题实在记不得了就没贴,整个面试过程中提出的问题很大一部分都是从一开始的问题发散出来的,会在你的回答中找到另外的点进行提问,引导的过程很有意思。
感觉自己还是欠缺很多解决问题的能力,在面对一个陌生的问题的时候并不能很快地进行系统的分析然后分解成子问题解决,而且感觉架构应该很有意思:)。听最后面试官的语气这次应该是没戏了,打算了解了自己的弱项方面之后,要开始好好学习了,解决一个问题的时候不仅要考虑当前的状况,还要假设别的情况。自己知识的广度和深度,现在哪个都不够:(,以后扩展深度之外尽量扩展广度吧
来源:https://www.cnblogs.com/Mu001999/p/10987752.html