2017暑期实习春招面经:网易互娱+腾讯IEG

从春季开学至今陆陆续续面了很多实习,岗位是C++/后台开发,也被刷了很多次,最后拿到的是网易互娱和腾讯IEG(魔方工作室)的offer,这里简单记录一下准备过程和面试时的问题,希望能帮到同样在找实习的同学们。


一、面试准备

首先从去年9月开始,陆陆续续看了下面这些面试相关书籍:《C++ Primer》(精读)、《数据结构与算法分析——C语言描述》(精读)、《剑指offer》(精读)、《Linux/UNIX系统编程手册》(部分章节精读)、《计算机网络(谢希仁版)》(部分章节精读)、《Effective C++》(略读)、《STL源码剖析》(略读)。

平时练习的内容,一般是在leetcode上做编程题,同时在牛客网上做专项的基础题。在面试前一个多月,主要是看牛客网的面经来查漏补缺并熟悉面试题型,这里特别感谢下面几位前辈的面经,看完之后收获很大:



二、网易游戏(C++研发,笔试+面试)
网易游戏(广州)今年的笔试题大家应该都知道,做对一题妥妥的就能面试了,这里不多说。不过听同学说,他第一题做对 90%的case,也得到了面试机会,但他面试了两次,可能各个岗位要求不同吧。
面试只有一面,开始20分钟面试官问了做的项目,然后是C++和linux的基础知识,最后是几道算法题,主要问的一些问题如下:
1、vector如何实现动态增长(面过的几家公司都问到这个问题,感觉不能只说resize之类的函数,还需要细化到vector内部的allocator如何工作等细节,具体可参考《STL源码剖析》)
2、如何实现申请一大片连续空间,避免多次使用new等调用(当时说的是allocator,不知道还有没有其他答案)
3、map的key和value的类型选择,都有哪些限制(key要支持operator<,如果没有,那么map模板必须增加第三个模板参数,value类型要支持operator=,此map要支持拷贝构造并有默认的构造函数。楼主想到的是这些,欢迎补充)
4、浅拷贝与深拷贝(介绍完按位拷贝等内容后,最好再指出按位拷贝会导致内存多次释放等风险)
5、线程的同步(这里我扩展地说了很多,互斥锁、信号量、cond变量等等)
6、互斥锁与自旋锁的区别
7、用sort处理文本的各种参数
8、算法题: 何得到链表倒数第k个元素(快慢指针,记得要判定是否越界)
9、算法题: 求一棵树中最大的距离,在一颗树中,两个结点之间所经历的边数(即从一个节点到另一个节点需要经过多少条边)称为距离(递归求解,当前节点的左右子树深度之和,即为经过当前节点的最大距离,然后同步更新所求的最大距离)。
10、算法题: 最大子段和(DP经典问题)
11、算法题: 二维最大子段和(上一题的拓展,把所有可能的数组两两相加即可,时间复杂度O(n3))。


三、腾讯IEG(后台开发,电话一面+现场二面)
腾讯算是面的最多的公司,前后总共面了4次......前两次经验不足,感觉面试官什么也没问就结束了,可能是自己水平太渣......准备了半个月之后,在三月底参加了IEG的电面和现场面试,这两次面试有明显区别,一面侧重于基础,二面的问题比较开放,感觉面试官考察的是思维体系。

首先说一面,前10-20分钟依然是聊项目,然后是各类基础题:
1、虚函数的内存管理(常见问题,建议把虚函数表、多态的实现过程这些都讲一讲)
2、全局与局部静态变量区别(感觉面试官是想问比较深入的内容,但我当时就答了作用域以及内存分配......请大神指点)
3、空类默认生成哪些函数(构造函数、析构函数、拷贝构造函数、以及拷贝赋值函数,参考《Effective C++》)
4、explicit关键字的作用(修饰构造函数,用于抑制隐式转换,“原则上应该在所有的构造函数前加explicit” ----《C++ Primer》)
5、类如何实现只能静态分配和只能动态分配(前者是把new、delete运算符重载为private属性。后者是把构造、析构函数设为protected属性,再用子类来动态创建)
6、算法题:数组中只有一个数出现了两次,求这个数,并使得空间 效率最优(用位图bitmap,比O(n)的线性空间更优)
7、哈希表解决冲突的方法(开放定址、再哈希、链表、公共溢出区,可以适当深入,比如分析各自的优缺点)
8、设计题:有500W个QQ号,设计一个合适的数据结构进行储存、查找与维护(这里考虑到查找的高效性,我想的是字典树,但和面试官探讨的过程中,感觉他不是很满意这个答案,大家如有更高效的结构欢迎分享)
9、TCP三次握手有没有被攻击的可能(如果一个恶意攻击的ip一直请求连接,服务器会发送ack确认,但永远等不到回复,就会导致服务器资源浪费)
10、TCP四次挥手时最后一次等待要多久,为什么(如A向B发送挥手,则A需要等待2MSL,MSL为最大报文生命期,这是为了确保A的挥手能到达B,不然B会重传第三次挥手的信息。另外也是确保所有此次通话相关报文在网络中消失)
11、ssh协议以及如何预防中间人攻击、如何免去使用密码(这个网上很多都有介绍,回答时记得理清顺序即可)
12、http和https有什么区别(前者运行在TCP,后者运行在SSL/TLS上,安全性更高)
一面还有一些小问题记不太清了,总体上是考察基础为主,很多问题面试官会顺着你的回答一直问下去,能回答更多细节固然好,答不出也没关系,很多底层实现面试官也没指望你全部答出来,只要整体的知识脉络把握清楚,再想办法转到自己了解更多的问题就行。

然后是二面,因为楼主的研究生课题是深度学习与图像识别,所以前面问了相关的一些问题,比如深度学习可否应用于游戏中,如何用机器学习来分析用户行为等等,然后就是几道设计题:
1、设计题 在MOBA游戏如英雄联盟、王者荣耀中,一般有多个玩家同时游戏,要如何实现游戏的实时性,如何处理玩家角色之间的同步(这个题感觉回答得不理想,主要说了同步的处理机制,对于单个用户的移动这些局部数据单独处理,团战时如何划分优先级,如何划分处理区域等等)
2、设计题:有一个3阶魔方,设计一个数据结构来储存,并设计一个算法来求解魔方(当时设计出了数据结构,但求解算法只能想到DFS+剪枝,显然时间开销太大......事后在网上没找到特别好的求解算法,如有大神知道,还请指教~~)
3、设计题:设计一个麻将游戏(规则可以选自己熟悉的,我选的是长沙麻将,因为就这个懂一点......这个题熟悉OOP的同学应该会得心应手一点,做到明确的功能划分,把几个类和相应的成员函数写清楚,应该没太大问题)。
以上就是二面的内容,题目数量不多,但真心烧脑。面试官很nice,全程都很有耐心地启发吾等学渣……二面的问题并没有一个明确的答案,面试官主要考察的是你解题的思路,所以多把自己想到的和面试官交流,勇于动脑和动笔,让面试官在解题过程中发现你的闪光点才是最重要的。


以上就是楼主这次春季面试的一些感受,文章内容若有纰漏还请大家多多担待。欢迎大家留言或私信交流,希望能帮到一起找实习的各位同学。最后祝大家都能找到自己心仪的实习岗位,fighting~
#腾讯##网易##C++工程师#
全部评论
难道是信科大楼五楼(现在搬去管院了)的学长?
点赞
送花
回复 分享
发布于 2017-03-31 21:46
等楼主完善了就加精,么么
点赞
送花
回复 分享
发布于 2017-03-31 21:52
国泰君安
校招火热招聘中
官网直投
大佬
点赞
送花
回复 分享
发布于 2017-03-31 21:53
网易游戏那个游戏部?
点赞
送花
回复 分享
发布于 2017-03-31 22:19
我去,一题可以面试,好多人做了三道都没面试机会……
点赞
送花
回复 分享
发布于 2017-03-31 22:20
网易游戏作对两题也没进面试啊。至少三题通过才行吧
点赞
送花
回复 分享
发布于 2017-03-31 22:23
赞~
点赞
送花
回复 分享
发布于 2017-04-01 11:01
好评!魔方可以用IDA*算法求解,zoj上有个题就是三阶魔方的求解
点赞
送花
回复 分享
发布于 2017-04-01 11:16
楼主的分享好棒!十分感谢!
点赞
送花
回复 分享
发布于 2017-04-01 17:27
关于Linux编程一般需要了解哪些啊?还有那本书哪些章节需要精读?
点赞
送花
回复 分享
发布于 2017-04-01 20:06
我也是24号收到杭州游戏研发的面试通过邮件,现在还没收到正式offer, 好慌, 有一样的同学吗?
点赞
送花
回复 分享
发布于 2017-04-05 12:55
楼主,我想问一下你最后选择了哪个实习offer呢,想了解下你是怎么选的?
点赞
送花
回复 分享
发布于 2017-04-09 22:05

相关推荐

部门:腾讯视频一面(4.22)先说感觉:第一次投大厂面试,面试官人真的很好,说不出来或者说不全的地方都在慢慢引导(包括墨迹了半天的算法题也是)时长:1h多点1、自我介绍2、数组和链表的区别3、voliate关键字有用过吗4、全部变量和static全局变量有啥不同5、define和type&nbsp;define的不同6、C++内存怎么分配的7、会用java吗8、讲讲线程和进程9、进程和进程间可以通信吗?怎么通信?10、讲讲互斥锁11、在锁没有释放的情况下,同一个进程里的其他线程可以去访问这个资源吗12、UDP和TCP的区别13、TCP怎么保证可靠性?连接的过程是怎样的?14、HTTP了解过吗?HTTP1.0和HTTP1.1区别?15、你实习的时候项目碰到过什么困难?16、violate关键字17、sizeof和strlen的区别算法题:输入俩字符串,求和并返回字符串(不能将输入的字符串转换成整数)总结:八股答得中规中矩,但有些问题面试官会给你假设一个场景,这个时候就能体现出本小白有多菜了,算法题之前做过一次,碰到取字符串单个字符转换成整型晕了(-‘0’就行),面试官还和我讲了字符型和整型为啥要这么转换。二面(4.23)昨天面完今天二面,据牛油们说是kpi。二面没咋聊技术,日常轻松聊天。这次面试官也很好,我虽菜但没被压力1、面试官介绍了他们的业务2、自我介绍3、你实习期间具体做了哪些工作4、我对你实习中的单元测试静态测试比较感兴趣,讲讲?怎么编写测试用例?5、讲了讲两个项目?具体使用什么语言?6、C++中的内联函数7、在浏览器端口输入一个网站会给你渲染一个界面,是怎么实现的8、DNS解析是什么?9、了解过移动端吗?10、能实习多久11、啥时候毕业?打算在哪个城市实习?12、你是更偏向于嵌入式的,咋投我们部门来了呢12、反问算法题:二叉树最大深度(使用递归做的,问还有什么实现方法,我说迭代后序遍历)三面(4.28)开场面试官说不问专业知识不做题目了,聊聊项目1、自我介绍2、选择这段实习你是想锻炼还是更希望留下来3、讲讲你在项目中的遇到的困难4、反问时间:20多分钟反思:面试官问了很多项目里的细节,更想通过项目去了解你会什么4.23晚g&nbsp;&nbsp;#腾讯#&nbsp;&nbsp;#实习#
查看35道真题和解析
点赞 评论 收藏
分享
点赞 207 评论
分享
牛客网
牛客企业服务