作者:leottt
链接:https://www.nowcoder.com/discuss/46728?type=post&order=time&pos=&page=1
来源:牛客网
一面:
const 三种用法
const int
const int* / int const *
int * const
https://blog.csdn.net/fanx021/article/details/82937940
sizeof() strlen() str.length() size()
https://blog.csdn.net/z_qifa/article/details/77744482
sizeof 为对象的字节大小,strlen 要求参数为字符指针
length size 都是用来计算string对象长度,作用相同
sizeof是运算符,strlen是函数。
_beginthreadex()比较于 CreateThread()有更高的线程安全性,不会造成多个线程共用同一个全局变量的情况
const mutable static
https://www.cnblogs.com/yangguang-it/p/6547314.html
strcpy strncpy strlcpy的用法 以及源码实现。
class, struct, union
https://blog.csdn.net/fadbgfnbxb/article/details/88788037
https://www.jianshu.com/p/ae75cd16000d
https://blog.51cto.com/cxdbk/1650006
https://blog.csdn.net/alidada_blog/article/details/83419757
TCP与UDP的区别, 场景, TCP如何实现可靠传
malloc 和new的区别 以及malloc的用法
https://www.cnblogs.com/ywliao/articles/8116622.html
https://blog.csdn.net/zlf19910726/article/details/79189689
1 申请内存所在位置
2 返回类型安全
3 内存分配失败是的返回值
4 构造函数和析构函数的调用
5 定义数组的大小(是否需要指定大小)
6 创建数组和删除数组空间的操作
7 new和malloc 是否可以相互调用
8 是否可以被重载
9 是否可以重新分配内存
10 客户处理内存分配不足
模板使用时候typename和class的区别
https://www.cnblogs.com/cthon/p/9201649.html
vector的push_back为什么要扩容2倍或者1.5倍
https://blog.csdn.net/bryant_xw/article/details/89524910
map\set\unorder_map\unorder_set的区别
https://blog.csdn.net/chen134225/article/details/83106569
https://blog.csdn.net/zjajgyy/article/details/65935473
说一下C++虚函数的实现
https://blog.csdn.net/tajon1226/article/details/81407190
https://blog.csdn.net/cherisegege/article/details/80469868
可以不修改父类 就让父类拥有子类的函数功能
基类的f()未被virtual 覆盖
基类的f()被virtual 覆盖
https://www.jianshu.com/p/3bc24c8cc329
C++智能指针了解么
https://www.cnblogs.com/KillerAery/p/9096558.html
如果要你设计,你会怎么设计智能指针
https://www.jianshu.com/p/02bb7e6aeb03
Java的是怎样解决循环引用的,那C++怎么解决呢
https://www.jianshu.com/p/d8578725f1bb
计算机图形学了解多少
说一下光栅化是什么以及这个阶段有什么流程
AVL树是什么?怎么判断两颗AVL树里含的数据是一样的(这里树的结构可能不一样的)?
https://blog.csdn.net/canot/article/details/78946450
中序遍历的非递归实现。
设计一个游戏排行榜的实现:1、获取前K名玩家的信息2、输入一个玩家id,能获取玩家当前的排名。
二面:
自我介绍
介绍一下自己最深刻的项目经历(说了一下自己在tx实习那边做的东西)
喜欢玩游戏么(从小学到大学玩的游戏都说了一遍= =)
设计一个洗牌算法,让牌尽可能的乱
给10w行数据,每行数据都是由
如果ip范围字段存在交集要怎么处理?
作者:相信梦想
链接:https://www.nowcoder.com/discuss/95256?type=post&order=time&pos=&page=1
来源:牛客网
一面:
virtual关键字
虚函数,这个我答的比较多,顺便说了一句构造函数不能为虚,扯多态的实现
然后就问为什么(虚函数表,实例对象的虚指针实现)
类里面还有什么函数不能为虚(半天没想起来,面试官提示static才转过弯)
https://blog.csdn.net/nie19940803/article/details/77427219
stl容器,实现方式,各种操作的复杂度
大数据处理为什么用vector不用list
一个vector当做无序容器储存上万数据,删除中间元素,怎么实现O(1)复杂度,开始没听到无序,想半天,后面提示无序后,直接swap pop_back
四种类型转换
编程思路题,下楼梯,一个小人从屏幕顶下楼梯(类似于真男人下一百层,只不过楼梯不变),只能在楼梯上左右移动,落在空中的时候不能动,掉落距离超过一定长度就摔死,空中掉落和左右移动都是1 m/s,问下到屏幕底所需的最短时间(用dfs,bfs实现),让写动态规划,写出状态方程就给过了
平时用的语言
tcp与udp的区别和各自的优势
二面:
类的成员函数中,const在三种位置的作用
定位new
介绍研究生的项目
遇到过的最困难的事
为什么想来网易
手写二叉树的前序遍历递归与非递归实现,问添加一个额外的操作,怎么封装(定义抽象基类,用子类实现)
给定一个地图,分割为多块,怎么把建筑物的高度压缩到0-1.0的高度
射击游戏,怎么判断开枪后命中的目标(子弹可穿透),目标如果有体积怎么检测
最后二面面试官人真的很好,就是说话声音有点模糊,两个题都复述了一次才听清楚
作者:HoldJohnh
链接:https://www.nowcoder.com/discuss/97989?type=post&order=time&pos=&page=1
来源:牛客网
初级游戏研发的笔试就三题 (找不到原题了)
第一题是工资多少求交税多少 我一堆 if else 完成了 花了 20 分钟左右
第二题是成员列表 类似QQ群的人员排序 在线 > 离线; 群主 > 管理员 > 普通人; 我用结构体保存数据 然后 sort 花了 30 分钟左右
第三题是 PVP 的时间,我是把每段时间都转换为距离周一 0 点的秒数,一开始一直 0% 后来考虑到周日到周一的情况 改完直接 AC 花了 60 分钟左右
这应该是我状态最好的一次笔试了,我还记得我写完从位置上跳起来的样子,然后不知所措的考虑要不要提交。。
一面前有一道笔试题,不透露就不说了
一面的面试官很 nice 一见面就说我笔试成绩很不错 感觉这让我的第一印象很好。
内联函数
重写和重载 覆盖
用 c 实现重载 (我很绝望啊。。。)
创建派生类对象时 构造函数调用顺序
虚函数的实现
用 C 模拟虚函数 (绝望。。)
虚函数可以内联吗
STL 容器和算法 (我刚看完 stl 源码 状态很好 一直是我在说)
vector push_back时间复杂度
socket 代码怎么写
拥塞控制
虚拟内存 物理内存
操作系统啥的 (我不会呀。。)
二面之前有段小插曲,我以为一面结束就可以跑路了,结果跑一半看的 0571 的未接电话,打回去是网易的 HR 让我回去二面,感谢小黄车,让我感受到速度与激情。
const 的用法和作用
dynamic_cast static_cast
java 的反射机制
项目
遇到的困难
因为我之前在边锋游戏实习过一段时间,了解了一下实习做了什么,顺便问了 lua 和 cocos2d 的东西
然后是俩题游戏设计 和这个老哥的二面几乎一模一样
吃鸡地图高度转换成 [0,1.0]的数组 然后提需求修改 (手写代码)
平面吃鸡判断击中谁 我使用数学思路来回答的 用向量啥的。
手写二叉树遍历 提要求需求如何修改 我想法是传递函数指针
设计模式会哪些呀
聊人生 聊理想
网易俩面试官给我感觉都是人超级好的那种,面的过程中还比较顺利很说说笑笑的。
猪场的午餐是不错 居然有虾! 而且小姐姐也很漂亮 但这不是重点
早上接到 HR 小姐姐的电话 真的好高兴 也很兴奋 心里终于有底了
最后希望各位老哥能稳住
我非 211 985 非科班(电子) 本科生都有机会进网易
你们秋招一定也能拿到想要的 offer 的!
作者:宇宙第二菜鸡
链接:https://www.nowcoder.com/discuss/96710?type=post&order=time&pos=&page=1
来源:牛客网
现场笔试:(0.5h)题不难但处理条件很烦,没写完
一面:(1.5h)
面试官看了我的笔试答案没说啥,直接开始。
多态,虚表虚指针,虚基类以及内存分布
函数重载
构造函数和复制构造函数能否为虚,为什么
一个对象的内存分布,多个虚函数占多大空间
shared_ptr介绍原理,weak_ptr如何解决引用传递
右值引用
编译器如何处理模版
编译中的导出符号表和未决符号表
反汇编时符号表的状态
比较c++和java
介绍一下stl的list,查找list复杂度
unorder_map插入复杂度
stl迭代器重载
遍历vector的几种写法
数据库常用数据结构,b+树的好处
图的bfs和dfs
快排,复杂度,最坏情况以及设计算法解决
tcp和udp
如何用udp封装实现tcp
进程和线程
如何保证线程安全
互斥锁原理和使用
多级cache
虚拟内存和LRU
光栅化pipeline
光线追踪
法线贴图
ssao
写过什么shader
字符串匹配kmp
最长公共子串dp的状态转移方程
点在线段上投影,向量解法
二面:(50m)
自我介绍
项目介绍和问答占大部分时间,不细说了
最新gpu架构怎样实现实时光线追踪,不知道就猜一猜
擅长的语言排下序,比较c++和java...
给定两点初始状态和运动方程,求两点相遇的时间和最早相遇的时间(没做出来)
文件io类似括号匹配的问题,疯狂提示下才想到用栈解决,也没完全做出来
职业规划
有什么问题
作者:失去梦想的菜鸡
链接:https://www.nowcoder.com/discuss/107050?type=post&order=time&pos=&page=1
来源:牛客网
今天早晨收到了网易互娱的 Offer,发个面经回馈一下牛客。
先说一下整个经历,我是8月5号投的提前批,7号参加的笔试,20号收到电话说笔试通过,通知21号下午电话一面。一面完过了一个星期收到电话通知30号现场面,面试官说十天内(我不确定他说的是不是工作日)出结果,然后今天早上收的短信。
一面:
一面约的下午 5 点,时间一到面试官就打了电话过来,全程 44 min
上来先让我自我介绍,问我学校都学了什么课程,问我的语言。我学校教的是 Java,自己学了 Python,所以面试都问的 Python。
Python 都用了哪些模块?用的是 Python 2 还是 Python 3?2 和 3 有什么区别?
range() 函数返回什么?
import 是如何加载的?如果想 import 一个下载的包要怎么做
闭包是什么?闭包里的函数怎么传参?怎么把函数外的变量传到函数内
线程是怎么切换的?进程是怎么切换的?
一个线程挂了,其他的线程会怎么样?
问我平时用什么数据结构多一些,说一下数组和队列的区别,如何用数组表示一个队列?
TOP-K 问题
TCP 和UDP 有什么区别?
UDP 包如何实现可靠?
数据是怎么在 TCP 收发端传输的?
问了一些网络编程相关的问题,记不清了
讲一下了解的排序算法
给一个英文句子,怎么把单词逆序
如何判断交叉链表?怎么找到交叉点?
图形学是否了解?简单讲一下坐标变换
有什么问题?(问了一下网易的引擎)
二面:
二面到了广州现场先带到一个小房间,给了一张纸手写代码,题目似乎是 STL 里面的一个函数的实现,如果经常用的话应该都能写出来,反正我没用过,乱写了一下 hhh,写完之后就被带到了面试官的房间,二面的面试官是一个看起来就很厉害的大佬,面试全程笑眯眯的,面试体验非常好(除了题不会),全程 45 min 左右
先自我介绍,问学校都学了什么,做过什么项目?
我简历上写了两个游戏项目,让我简单介绍一下
实习都做了什么?(我在一家创业公司实习,做游戏测试策划和部分开发,就简单讲了一下实习的经历,讲了测试时遇到的一个bug,还有开发的游戏)
有没有学过图形学?都学了哪些?
问了一个空间坐标系转换的问题,大概是给了一个三角形,怎么把这个三角形转移到相机的那个空间,名词我记不太住了,就是比较基本的图形学知识。
我说我图形学学了一点关于碰撞检测的东西,问我如何判断一道光线是否与物体碰撞,怎么找到碰撞点?什么是八叉树?
是否了解 C/C++?(不了解,但是会写一点代码。。)
是否了解 STL?
print函数从执行到打印到屏幕上都经历了什么?
堆和栈有什么区别?
多线程了解吗?多线程可能会因为什么问题?举个例子说明。为什么加了锁就可以避免?加锁操作不会出问题吗?
写一个 Python 的列表生成式,生成 0 到 100 的所有奇数
给一个数组,如何把所有的 0 都移到数组最后?手写代码
升学和就业是怎么考虑的?
有什么问题?(问了一下会不会玩自己开发的游戏,玩的时候是什么感觉,还有关于图形学和 openGL 的学习方法)
作者:victorika
链接:https://www.nowcoder.com/discuss/94899?type=post&order=time&pos=&page=1
来源:牛客网
到现场先做一份代码测试,题目很简单,但是要保密。。。面试官只在乎你的思路不在乎你写出来了没有。
一面:
virtual关键字的作用
虚基类有什么用
static的作用
new和malloc的区别
如何突破private的限制
有一个头文件声明的全局变量,其他文件导入这个头文件,那么他们访问的是一个全局变量吗?
知道内存对齐吗?为什么要内存对齐
如何实现new的时候它肯定是以某字节对齐的
如何让一个指针new的时候不分配内存
四种类型转换
inline了解吗?有什么用?inline一定起作用吗?
系统堆栈的区别
C++11的新特性有哪些
move有什么用
模板的参数推导
红黑树
树的dfs和bfs手写代码,dfs非递归版
爬楼梯每次可以爬1 2或3步,问爬到第n层有几种方法
一个数字只有一个数字出现奇数次其他出现偶数次如何找这个数。
两个栈实现一个队列
三次握手和四次挥手,画图,为什么是三次握手
tcp和udp的区别
场景题,某个客户端作出了动作,服务端需要更新到所有的节点,使用udp好还是tcp好,为什么?
udp如何实现可靠了解吗?
http1.0,1.1和2.0
智能指针了解吗
手写shared_ptr
操作系统有几种锁
互斥锁和信号量的区别
进程和线程的区别
(大概只记得这么多了)
二面
二面是真的难受,面试官在一个问题上问为什么,答出来以后又挑细节继续问,我。。。直到你答不上来了才换题目真是难受,面试官还一脸严肃,搞得我好紧张。
C++内存模型,每个区放什么
extern "C"知道吗,干嘛用的(要说得很细。。。不然问死你)
一个4m的buffer,设计一个方案来分配内存和释放内存,分配的内存只有1k,2k和4k。
设计模式里的单例模式知道吗?手写一下(写完继续问,为什么构造函数要private,为什么要双重判断,等等等等一系列的问题,我真是佛了,我一开始写的pthread_once_t,他说你这样我不让你过,强行让我改另一个版本)
缓存是什么(这里引申了一堆的问题,就不一一说了,真的难受,感觉说越多问得越多)
虚拟内存和物理内存的区别(这个问题又是问得很细,真的头疼)
静态库和动态库的区别?(哎,这个同上,就一直问。。最后问到底层实现,我想打人了)
为什么想来做游戏研发?
C和C++与脚本语言的区别?
由于被虐得体无完肤,问题都基本记不得了,只记得大方向被人怼过的就这么多,每一个环节疯狂深入展开,非要把你问死的节奏是真的难受
这几天忐忑不安,今天终于等来电话,网易叫明天早上领offer,希望大家也能拿到自己想要的offer
作者:灵溪吴彦祖
链接:https://www.nowcoder.com/discuss/111003?type=post&order=time&pos=&page=1
来源:牛客网
下面讲过程,挑重点讲哈:
先笔试半小时,一题开放地址法插入哈希表,要求元素不能重复,表的长度调整当然也得考虑。
一面:
1.顺着笔试题问了哈希表怎么扩张、插入和删除。
2.让你自己设计智能指针你准备怎么做。
3.描述const、constexpr作用
4.n个数找前k个最大。
5.n个数里面删k个,求剩下的数里面能组成的最大数(当时不是很懂题意,应该是这样)。
6.树的后序遍历非递归版。
7.tcp&udp?
8.一个文件里某函数a()调用另一个函数b(),中间发生了什么描述下(汇编层面)?函数是怎么保存当前堆栈状态的?
9.最大递增子序列动态规划的状态方程,分析怎么得出来的?
10.C 11新增特性?move语义?非类型的模板写一个我看看?
一面就记得这些,反正很深的都答不上来,懵逼。
面试官:我看你还是做过游戏的,要不你转初级游戏研发上二面怼一怼?
好的。
二面:
1.笔试题哈希表扩张,怎么插入,怎么rehash的,细节呢?
2.聊了一些实习的公司的事,就当是缓和气氛?然后开虐?
3.设计一个timer(float dt, function<> callback)函数,传入时间和函数指针,到指定时间后调用函数(学过cocos的都知道,就是设计scheduleUpdate),我直接算执行每个回调需要的具体时刻,然后放最小堆了,不知道对不对。
4.设计完了?你确定?描述下?然后呢?怎么优化?
5.一个黑白颜色各占一半的转动的圆盘,可以在上方随意放检测下方颜色的传感器,最少放几个可以知道是顺时针还是逆时针转?
6.聊项目,聊cocos,为什么每个node需要visit()?干嘛用的?cocos内存管理?PoolManager干嘛用?
7.用过哪些设计模式?组合和继承区别?各自优缺点?(我就是扯引擎用到的那些)
8.字符串翻转。
9.为什么之前选择去棋牌公司实习?不是浪费时间嘛?不过你干的活倒也不是完全没含金量(一边看着我的简历),......
最后问问题环节,说我基础不是很好,cocos是懂一些,但是看的不够多,需要回去找原因继续研究。
总得下来面试官还是不错的,除了一直对着笔记本打字,应该是记录面试表现以及打分啥的,但是有时候你会有种被忽略的感觉(尤其是答不出来的时候)......
不用等结果就知道自己凉了,回去多补补来年秋招再战吧。
多说一句,凉了的同学千万别灰心,面试能暴露出你的很多问题,而发现问题是很幸运的。而且我上次投简历是笔试都没过,但是这次是在二面挂的,下次说不定就进了呢哈哈哈。年轻人有股劲就是拿来闯拿来学习的,有激情就释放到自己热爱的领域上,不然怎么会进步呢是吧。
操,我现在只想回去打几把炉石压压惊。
作者:旧习难改
链接:https://www.nowcoder.com/discuss/114820?type=post&order=time&pos=&page=1
来源:牛客网
开始做笔试题,由于牵涉到保密信息,在此不便透露题目。
做完笔试题稍作等待,便被人带到了12楼等待前一批人面试完成,其余4人先被带至指定房间面试。
面试我的那个面试官和我之前的面试的比较久。。。
等待n久之后,我前面的同学出来,我们聊了一下面试官性格(我只问了一句:“面试官是一个不苟言笑的技术宅吗?”,根据以往经验这种人是最难应付的,但是得到的回答是面试官是一个非常健谈和喜欢较真的人,什么问题都会一直问下去,直到自己不会)。
随后我被带到了面试官房间,自我介绍,介绍刚刚题目的思路,开始问技术。
1. C++虚函数,我开始向虚函数指针和虚表那块说,中间无意中说出了自己曾经看过虚函数表在elf文件中的位置,遂停止让我介绍虚表。
2. 开始问虚表在elf文件何处以及基本形式,答完之后开始问关于elf文件相关知识。
3. 怎么查看elf文件的头部信息。
4. 开始测汇编能力,问函数调用时会干什么(当时很懵B,随后提示一定会执行什么语句)。
5. 开始问gdb相关知识,大概问了几个调试命令。
小插曲,他吐槽了一下,你为什么报的是初级开发工程师(回到投递简历时研发工程师至少是研究生才能投递)。
6. 开始转战STL,问用过哪些,还有map那点破事。
7. 丢给我一组数让我建一棵红黑树,并询问是否记得红黑树创建规则,向其坦白自己记得不是太熟,他说没啥,就不浪费时间了遂放弃本题。
8. TCP/UDP那点破事,因为本人暑假实习做的是这个相关的,所以它让我用UDP实现可靠数据传输,我说了几点策略,但是不太满意,并反问道你暑假不是作的这个吗?遂向其解释,只是做了一个中间层,底层可靠数据保证是别人github上面的完整工程,并向其道歉,说让他失望了,但是回答的很爽快“没关系”。
9. linux那点破事,大概问了几个命令,最后一点是我没想到的,记录当前资源占用率的文件存放在哪(只是大三做***作系统实验的时候用过,隐约记得是proc,便随口答了)。
10. 问了一个趣味问题。
一面结束,它让我把之前写的代码交到hr处,到hr那里等待结果,但是我推托说下午学校有答辩(实际为百度三面),遂离开,在地铁站等待地铁时hr打来电话,一面通过,让回去二面,遂又解释了一番,于是那边回,如果答辩在5:30之前结束,可以联系他,并回来继续参加二面。
百度三面结束是4:40.于是再次乘坐地铁回到网易面试处继续二面,等待n久之后被带到面试官哪里,最担心的事发生了,面试我的面试官是一个面瘫技术宅。
1. 先介绍一下自己,介绍一下项目,并就项目问了几个问题。
2. 为什么不读研。
全程说了5分钟,他表情没有变过。。。
3. 开始问问题,地图中有一个圆圈,怎么样保证丢的补给可以均匀落到地图各处。
回答1.0,随机生成坐标点(x,y),首先判断是否在园内,在就投递。回应:可以但是需要判断较为麻烦,优化一下。
回答2.0,以圆心为原点,随即生成半径和角度(r ,sieta不知怎么打)。回应:不均匀,圆心处比较密。
回答3.0,以圆心为原点,随即生成半径平方和角度(r^2 ,sieta不知怎么打)。回应:可以,但是证明一下落点是随即的。
。。。想了n久没有想到证明方法,只得坦白刚刚只是直观感觉。
(面无表情,我们换一个问题)。
4. 怎么样均匀洗一副扑克牌。
回答1.0,使用随机数函数,每次生成一个数然后和剩余牌数取余,然后将该下标牌取出。(面无表情,记载)。。。
5. 排瓷砖,经典斐波那契数列问题。
6. 快速获得一个队列中的最大元素。
7. 有什么想问的。
二面结束,回到学校已将近7点,吃了点晚饭睡觉,今陪考研室友呆了一天图书馆。
晚上回来接到hr短信,说后续通知,10点左右hr小姐姐打来电话,告知明天8:30参加offer研讨会,不要迟到。
无意间听说自己的offer上面职位为“游戏研发工程师”,激动万分,遂向其确认,得知没有搞错。
于此本人秋招行程结束,不管百度那边是否发放offer,但留在猪场大概已是定局。