网易互娱游戏研发(初级)面经(回报牛客!!)

  • 自报家门:

    广东工业大学,数字媒体技术,本科大四,本身自学懂一点U3D,今年半路出家学C++,通读了《C++ primer》

  • 秋招经历:

    七月末,抱着试试看的心态,我投递了网易互娱的游戏研发,第一志愿选的初级,第二志愿选的研发(非初级)随后在八月初收到了模拟笔试邀请,我看模拟笔试不会成绩不会影响正式笔试,我就想去练练手,笔试一共三编程道题吧,时间久远我也忘了具体考啥,反正AC两道,60%一道。感觉还行。几天后网易告诉我模拟笔试成绩良好,八月中旬有面试通知,顿时很慌.....毕竟准备不充分,这么快就有通知怕死太早,于是整个八月处于"疯狂补基础,不想当分母"的状态。通知告诉我是8.23回广州面试,又让自己能苟延一段时间来补补简历项目实现细节回到广州后,经过代码测试+两轮面试,等了一周的通知,在九月初收到了意向书,中间也参加了不少公司的笔面,又经过20多天的漫长等待,终于在前天收到了正式offer邮件了!!!平复了激动的后,我决定尽量回忆并记录下当时面试的内容,以飨来者,祝各位能早日获得心仪的offer!!

  • 面试过程:

    不论投的是初级还是非初级,面试都是同一批的,网易会根据第一志愿笔试面试表现来评级。我觉得自己第一志愿填的是初级游戏研发,然后面试表现一般,所以就被安排到初级了

  • 代码测试:
    到了现场,hr点名几个人,叫到一个房间里,每人发一张纸,纸上都是一样的题目,在纸的空白处手写代码。用不同的编号表示不同种的装备,编写两个函数:1.不同种装备归为一种,2.判断两个装备是否同种。这题目就是并查集的简单应用。

  • 一面:

  1. 两个面试是官,在自我介绍的时候,一个看简历,另一个看代码测试的卷子。我在网易游戏学院了解到初级研发对技术的要求比非初级低一些,然后也会在意同学对游戏的热爱程度。所以我在自我介绍的时候就提到自己是平安京玩家,最喜欢犬神打野,因为自己的专业教编程仅是涉猎编程,更深层次的知识都是从别的野路子学来的,自己状态就像在野区搜刮经验的打野一样。又把人生比作一局游戏,现在是前期,虽然神装没有出齐,但是石距既然刷新了,就要试着挑战一下。看简历的面试官突然抬头望着我笑,让我稍微不那么紧张了
  2. 然后就问一些老生常谈的C++问题:譬如继承体系中构造函数与析构函数的执行顺序虚函数的实现原理四种cast是什么vector的实现原理extern “C”的含义指针和引用的区别内存泄漏的情况等等,这些去google搜一搜,哪怕百度一下,都能找到答案,我就不再赘述了
  3. 然后问到了算法,自我感觉算法这块答得可能不是太好,首先是经典的topK问题,数据量比较小的时候,用快排的pattion改进,假如数据量比较大,就用堆排序
    问:“详细描述堆排序的过程?” 答:“建堆和调整堆”
    问:“建堆和调整堆的时间复杂度分别是多少?” 答:“建堆是logn,调整堆nlogn”
    面试官:“你确定吗?” 此时我感觉头顶悬着一个"危"字,吓得我赶紧画了一个堆来尝试推算
    还好最后给我掰扯回来了,"建堆和调整堆都是nlogn(感谢评论区指正,当时手工建堆用自顶向下之法,确实是nlogn),刚才我搞错了,老师您看我的手工建堆的过程balabala....."
    问:“一个集合,不断添加数据,如何维持它的中位数?”
    答:“我觉得...用平衡二叉树组织这些数据,然后中序遍历一半左右的节点,就找到中位数了吧...”
    面试官:“这也算一种办法吧,还有吗?” 我:“...想不到”
    其实这里我处理得不好,面完之后我才知道原来这是剑指offer里的题---数据流的中位数。感兴趣的就自己去寻找答案吧,这里不赘述了。
    随后谈到C++哈希表的实现原理,又有如下问题,
    问:“假如有10w个整数数据,如何设计哈希函数使数据的哈希值均匀分布在0-100之间呢?
    我:“这.....我知道有一种哈希函数的设计大概是先把数据左移n位,再与一个数异或,然后再右移n位,好像可以做到均匀哈希,至于如何保证它的值域在0-100之间,这可能是数学问题吧,我也不清楚,抱歉” 关于这个问题,我也找不到好的答案,如果有dalao知道的,在评论留言告诉我吧~
    问:“一个抽奖系统,如何保证抽中的n个号码是不重复且随机” 这其实是生成不重复随机数问题,我回答错了,其实答案应该是用洗牌算法先生成一个随机数序列,如果要n个随机号码,取序列的前n个就行了
  4. 然后问了问操作系统的进程与线程的区别,进程的物理模型,进程pcb块存放哪些数据
  5. 然后又问了计网的 udp与tcp的差异,tcp如何保证可靠传输,阻塞与非阻塞的区别,客户端断网后服务端怎样才能知道要停止服务(心跳包)。计网与操作系统的东西都能在网上找到,我就不赘述了
  • 二面:
  1. 二面只有一位面试官,面试场合也比之前的要宽敞一些,感觉没有一面那么压抑。和先前一样的自我介绍。
    然后面试官就问:“平安京打到什么段位了?除了犬神还喜欢玩什么式神啊?”
    我:“?????” 被这个展开吓到了,感觉可能面试官也很喜欢玩平安京吧,随后面试官就言归正传了。
  2. 我简历的项目里u3d做得比较多,C++做过一个控制台字符动画播放BadApple!!视频的小玩意儿,于是就提起了这个,我就balabala把实现细节全掏了出来,感觉回答得还不错
  3. 然后面试官问我怎么学的C++,我就跟他说到那本经典《C++ primer》,然后他就问我智能指针相关的, 智能指针的种类,引用计数,RAII,实现原理,一五一十全交代了。然后他就递给我纸和笔,要我手写出shared_pointer的主要实现,还好之前在C++primer做习题手撕过智能指针,我大概写出了它的各种构造函数和一些运算符重载。
  4. 随后就问了些hr相关的问题(原来二面是技术面与hr是混合的吗?)譬如你的老家住在哪?你的期望薪资是多少?你未来三年的职业规划是怎样的?在回答职业规划的时候,我说我有考虑过要转引擎。然后他就问我:“那你会图形学吗?” 虽然我学过一点Unity Shader,看过渲染管线也实现过一些光照模型,但那是很久以前学的了,补基础的日子里这些都忘得差不多了,索性就说不会吧,免得节外生枝,没想到面试官脸色一沉,说:“不会图形学,你可能不太适合做引擎啊” 幸好后来有收到意向书,听到这话的时候,我都以为我要凉了2333333
  • 后续

    面试的表现不是很完美,能有现在的结果,感觉也有点幸运。但我觉得吧,回想起面试和笔试的内容,几乎是自己暑假恶补学来的知识,努力还是有必要的鸭。三分天注定,七分还是要靠打拼!希望这篇面经能为日后面试网易互娱的朋友提供一点参考价值吧

  • 2019/9/29 凌晨3:12

#游戏研发工程师##网易互娱##校招##面经#
全部评论
其实建堆是是O(n),调整堆是O(logn),堆排序过程中要1次建堆n-1次调整,所以堆排序才是O(nlogn)
2 回复
分享
发布于 2019-09-29 08:12
建堆实际是线性的复杂度,看上去是每层都要调整高度个结点,实际上不同层是不一样的,数学推导就是个级数求和,会发现加起来最大的部分是On
点赞 回复
分享
发布于 2019-09-29 08:31
乐元素
校招火热招聘中
官网直投
均匀哈希那个怎么做啊
点赞 回复
分享
发布于 2019-10-03 21:57
好狠
点赞 回复
分享
发布于 2019-09-29 04:01
恭喜恭喜
点赞 回复
分享
发布于 2019-09-29 07:07
不适合做引擎的意思是可以做游戏客户端😂
点赞 回复
分享
发布于 2019-09-29 08:21
点赞 回复
分享
发布于 2019-09-29 11:00
嗷呜 恭喜恭喜 抱大腿
点赞 回复
分享
发布于 2019-09-30 18:46
均匀哈希为什么不直接mod 100呢
点赞 回复
分享
发布于 2019-10-23 11:37
均匀哈希的问题终于在mit的算法导论课上看到解答了,感兴趣的同学去b站学习吧
点赞 回复
分享
发布于 2020-06-21 17:47
入职了嘛?感觉咋样
点赞 回复
分享
发布于 2020-07-14 08:58
有几轮技术面啊
点赞 回复
分享
发布于 2020-08-27 19:55
你这个面经我要是早点看到就好了
点赞 回复
分享
发布于 2020-08-29 08:03

相关推荐

24 129 评论
分享
牛客网
牛客企业服务