文章目录

  • 笔试
    • 顺子
    • 编码转换
    • 充电池
  • 一面
    • 自我介绍
    • 多态定义
    • 虚函数
    • STL容器
    • 类型转换
    • static
    • 算法题
    • 3d图形
    • 网络
    • 结束
  • 结果

笔试

笔试是在牛客做的,三道编程题。

顺子

第一题是给定一副手牌(A、2-10、J、Q、K,可重复),五张以上连续为顺子,最高连到K。问这副手牌有多少可能的顺子。(同样数字不同花色算不同的顺子)这道题我先卡在读入。输入有数字有字符,数字又有二位数。读char也不是读int也不是。最后只能cin.get逐位读然后空格与空格之间为读入的牌然后再做识别。读入之后就还算简单,各位自己思考吧。

编码转换

第二题是现有一个大整数,以字符串读入然后做转换。先将这个大数从低位开始每三位分一组,高位补0,然后转为二进制。转为二进制后每五位一组,同样高位补零。五位二进制可以表示范围是0-31,那么就将这些二进制数对应地转成0-9、A-V。然后输出。这个其实就是大数转32进制,中间的转二进制是迷惑人的。实现不难。

充电池

第三题是沙雕科学家搞发明,弄了n个不同容量的电池,然后用导线给电池充电。他只有一个功率输出口,接在特定一个电池上,然后其余电池都用单向导线连接,形成一个有向无环图。现在开始给电池充电,每个电池充满后才会向后方输出电能。输出电能会平均分到它屁股上的所有导线。如果一个电池充满了屁股上又没有导线,它接收到的电能就浪费了。问过多久才能充满所有电池。这个题我一开始以为很简单,实际写才发现很复杂。因为每个电池头顶可以接收多个导线,所以一个电池接收到的功率会多次变动。我大概有个思路,但最后时间不够就放弃了。

一面

笔试ac了两题应该还算是可以,所以过两天hr小姐姐就打给我约面试了。我还有点紧张,疯狂翻STL剖析。面试约的下午3点,我午饭后就坐着一边看书一边等电话。

自我介绍

面试一开始先是让我自我介绍。我说我叫【打码】,【打码】人,本科是【打码】大学软工,现在在【打码】大学读研。呃……还有什么别的需要了解的吗。对面就笑了笑说行。(感觉自我介绍应该还是稍微准备一下,但是应该介绍什么也拿捏不太准。表达一下自己对游戏的热爱?但又会不会太啰嗦?)

多态定义

然后对面问我主要是用什么语言,我说现在主要学C++。他就问你怎么理解多态?我说多态就是通过实现继承让程序可以在运行时决定被调用的方法是哪一个。虽然这个问题我上次面另外一家也被问过,但我还是没有准备这个答案,所以实际说得比较乱。不过还好听对面的语气他好像也还算满意,意思是表达出来了。他说你就举个例子吧。我就举例子说比如有个职员类,它有个发工资方法,现在再实现它的两个子类经理类和普通员工类,它们各自有不同的发工资方法。然后在程序执行时就可以用一个职员类的指针指向经理类或者普通员工类对象,然后用这个父类指针调用发工资就会触发动态绑定,调用到指向对象自己的方法。(虽然回答重点是突出多态的思想就行,但是事后想想要是举的例子是英雄类,子类是战士和法师,方法是攻击就更完美了。职员发工资太无聊了)

虚函数

再然后他就顺势问虚函数,问虚函数调用是怎么实现的。动态绑定发生时是怎么调用到子类的函数。多继承的子类有几个虚函数表。虚函数这个部分我看了应该不下十遍了。学C++应该都会仔细看过这个部分我就不详细说了。

STL容器

然后就是问C++的容器,STL的容器我有没有用过。当然实际上我没怎么用过,但是我全都看过,所以就说了几个vector、list、deque之类的。他就问vector和list有什么区别。向量和链表区别大了去了,一个是连续内存一个是链表。一个动态空间靠重分配一个本身就是离散的理论上没有空间限制。一个可以随机访问一个不行……等等等等,不详细列了。
他又问map用过吗,我说也用过。他map底层是怎么实现的?我说就是红黑树嘛。每个值是key-value对,然后他们按key值存在红黑树里。他就问红黑树定义,我凭印象大概给他说了一遍。说的时候我说红黑树不同于平衡二叉树,他就问那为什么有平衡二叉树了还要红黑树?红黑树有哪里好吗?我这里就卡住了,毕竟我没有思考过这个问题,我就凭想象说红黑维护代价应该比平衡二叉树简单一点吧。毕竟红黑再重新调整时只涉及单边子树,平衡涉及整棵树。这个因为是我临时诌出来的答案,我说的时候也没那么自信,他也反复追问“是指写程序的时候方便一些?”“你是说平衡效率更高?”最后我才整理出单边子树的说法。事后网上查了查,好像确实大概是这么回事,lucky。
红黑树结束后他又问了大小顶堆,问这是怎么实现的。我说说是堆实际上是个数组。第i个数的左子节点是2i+1,右是2i+2,每次插入新元素就从最后一个分支节点也就是n/2开始检查它和子节点的大小关系。这是我面试前专门看过的。他听了挺满意,然后问了个用大小顶堆做的问题。给定一个数组,求前n大的数。(这问题我研究生面试也被问过,当时我还不知道大顶堆……)我就很顺口,那就维护一个长度为10的大顶堆嘛。他说你确定是大顶堆?我还觉得奇怪,找最大不是大顶堆?然后他就要我详细讲,我说着说着才反应过来,哦应该是小顶堆……我改过来后他又详细问了一遍,我就详细说了实现过程。改了过来应该也算是可以……吧?

类型转换

接下来问C++有几种类型转换。静态动态const和重编译四种,这个定义到处都是,这里就不写了。

static

他又问static关键字是什么用。我说类里面就是静态成员函数,无论有几个类实例都只会有这一份拷贝。他说除了这个还有别的用处吗?我又说在方法里同样也是方法无论调用几次都只有这一份拷贝,而且只能在方法内被访问。他问还有吗?我想想说大概还能作为全局静态吧……记不太清了。(这个我确实没有认真记住,这部分答得也不算好。static具体用法请到别处搜索)

算法题

接下来一个算法题,给一个英语句子,每个单词用空格隔开,怎么将这些单词按倒转的顺序输出。
我第一反应当然是栈啊。用cin逐个单词读入压栈再逐个pop出来。他说这可以,但如果不能用额外的容器呢?
我想了想说那用一个临时的char数组,从后向前遍历将字符插到临时的char数组的头部,遍历到空格就输出临时数组并清空。他说那你这个临时数组要声明多大?如果我这个字符串有3个G呢?
不让用临时那就是本地转换咯。万幸还是让我想出个办法,先将整个字符串倒转,再逐个单词倒回来。他听上去不知道是否满意这个方案,不过也没有继续问下去了。

3d图形

C++他就问到这里了,接下来问我有没有接触过3d渲染,我说基本没有,他就跳过了。这个是我短板,没办法。

网络

再然后他问socket编程用过吗?我说我在本科用java写了个局域网棋牌游戏,那时候用过一点,之后没怎么用过了。他问那网络你了解吗?我说我就只大概看了TCP和UDP什么的。他就问那你说说二者区别。我就大概说TCP需要连接比较安全,UDP不需要连接,比较高效,发出去也不保证送达。一般聊天就是TCP游戏用UDP(我看文章看回来的,就顺口一说……)他一下就抓住了后半句,你确定游戏都用UDP吗?我说游戏数据交换量大嘛,用UDP更快速。他说那我玩推箱子,向前向左向前,向左指令发丢了会发生什么?我说那你就向前了两次,这就是玩游戏丢包嘛。他说那你觉得这可以吗?我说像推箱子这种数据量小的可以用TCP嘛,数据量实在大的才用UDP。他说那moba游戏呢?比如我的英雄放两个互相配合的技能,前一个技能丢包了,你觉得可以接受吗?我说不能接受,但游戏丢包没办法嘛,我玩英雄联盟就经历过丢包。他说那你想想办法改进一下。接下来就开始了我长达十分钟的痛苦的UDP改进之旅。我其实想说那要不用回TCP吧,但他一直说“既然你那么坚持UDP”,弄得我都不好意思回头了。不过这部分应该就是他引导我思考的一个过程,看我能拿出怎么个解决方案吧。不过网络编程我是真不熟,根据他的意思反复改了几次,他才放过了我。

结束

UDP之旅结束他就说他没什么问题了,轮到我问问题了。我就问了几个我准备好的问题,然后他说hr在三到五个工作日通知我结果,面试就这么结束了。

结果

4月19号,面试一周后收到了offer。yes!!!!

网易互娱2020游戏研发实习生笔经面经相关推荐

  1. 阿里巴巴校园招聘——灵犀互娱、游戏研发工程师、一面面经

    今天下午,参加了阿里巴巴.灵犀互娱.游戏研发工程师的一面,感觉提问的问题不是很难,但是可能基础不是很好,并且游戏这方面接触的也比较少,所以面试的表现不是很好. 面试集中在以下几个方面: 1. C++基 ...

  2. 网易互娱2020校招游戏研发笔试题

    网易互娱游戏研发笔试题 第一题:判断一个数的二进制是否为回文串(AC) 方法一:存成数组之后比较 #include<iostream> #include<algorithm> ...

  3. 网易游戏(互娱)游戏研发一面二面(已收到offer)

    简单来讲下上周面网易互娱的心得(因为我不是走内推而是直接怼笔试的,所以上周才有了笔试结果然后被告知面试),我面的岗位是游戏研发工程师(初级) 一面(40分钟左右) 开始是简单的自我介绍 C++: 关于 ...

  4. 【面试题】网易互娱(游戏)2021校园招聘在线笔试 - 服务端开发工程师[螺旋矩阵]

    昨晚做网易互娱的笔试,比较尴尬的是只能用C/C++/Java,而本人对C/C++的了解仅限于大一的课程设计(而且一年多没用过C写代码了),Java差不多看得懂代码但是没有系统的学过.无奈最后只能用py ...

  5. 【面试题】网易互娱(游戏)2021校园招聘在线笔试 - 服务端开发工程师[文件系统]

    昨晚做网易互娱的笔试,比较尴尬的是只能用C/C++/Java,而本人对C/C++的了解仅限于大一的课程设计(而且一年多没用过C写代码了),Java差不多看得懂代码但是没有系统的学过.无奈最后只能用py ...

  6. 【面试题】网易互娱(游戏)2020校招在线笔试-游戏研发第一批[水平线]

    伞屉国是一个以太阳能为主要发电手段的国家,因此他们国家中有着非常多的太阳能基站,链接着的基站会组合成一个发电集群.但是不幸的是伞屉国不时会遭遇滔天的洪水,当洪水淹没基站时,基站只能停止发电,同时被迫断 ...

  7. 【面试题】网易互娱(游戏)2020校招在线笔试-游戏研发第一批[游泳池]

    小明作为一个游泳池管理员,以玩弄给水管和排水管为乐,也因此产生了很多数学题考验小朋友. 现在小明想把这个行动升级,考验一下程序员,做了一个自动装置来控制给水管和排水管.在开始时,给水管和排水管都是打开 ...

  8. 网易互娱AI研究工程师实习生一面——记人生的第一次面试

    2020.4.15,这是我人生中的第一次面试,虽然结果不那么好,但也反映出我存在的各种各样致命问题. 我的研究方向是强化学习,确切来说是强化学习在路由方面的应用.由于个人原因,基本都是凭借着兴趣在自学 ...

  9. 网易互娱校招游戏初级开发工程师一面+二面 面经

    面试从13点30开始: 先给了一个判断二叉树左右子树是否相同的题,但是我读题不仔细,以为是判断两个二叉树是否相同.好在无伤大雅 public static boolean isSameSubTree( ...

  10. 【面经】三七互娱Java游戏研发实习(一面)

    一.王者荣耀服务器实现 二.接口和类的区别? 1.类只能继承一个类,但可以实现多个接口. 2.对于继承性,类继承了父类的方法,子类可以选择是否覆盖父类的方法. 3.接口的方法只有声明,没有实现:而类中 ...

最新文章

  1. Java中final变量的初始化方式
  2. 每日一皮:新年好...
  3. 新鲜出炉!2019年高考语文作文试题来了
  4. 暮色森林模组_我的世界怎样进入暮色森林
  5. Interview:算法岗位面试—11.19早上上海某银行(总行,四大行之一)信息技术岗面试记录
  6. 基于AppDomain的插件式开发
  7. 关于寻路算法的一些思考(1):A*算法介绍
  8. php swoole 内存,swoole 占用内存到10M 报错
  9. ORA-01843:无效的月份
  10. 快乐的Linux命令行--读书笔记1
  11. Javaweb之session创建销毁问题
  12. linux ansible_17本技术书籍,4个出色的Firefox扩展,Linux技巧,Buildah,Ansible和其他热门阅读
  13. java程序调用xfire发布的webService服务(二)
  14. Axure rp8元件库载入失败怎么解决
  15. Selenium WebDriver 数据驱动测试框架
  16. 新浪邮箱服务器设置,新浪企业邮箱|帮助中心
  17. Canal监听阿里云RDS
  18. 求学生课程平均分问题
  19. 问卷设计及问卷调查中的问题与技巧
  20. 什么是Microsoft Flow?

热门文章

  1. mobile_net在spyder下载不下来
  2. 计算机量子化学计算焓变,中国科学技术大学超级计算中心
  3. U8恢复记账操作步骤
  4. 原生android系统换主题字体,Android 自定义字体,更换系统默认显示的字体使用自定义字体...
  5. 计算机专业所需的职业道德,浅议计算机职业道德
  6. Java 编程语言单词汇总
  7. Github代码安全监控
  8. ArcGIS单波段影像重分类与批处理
  9. CCS软件的基础使用(以点灯为例)
  10. 求矩阵四叉树的四进制和十进制Morton码