作者: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行数据,每行数据都是由<ipstart,ipend,location>的字段构成,<ipstart,ipend>是一个ip范围字段(ipstart<=ipend),这个范围对应一个唯一的地址location,每个ip范围字段不存在交集。问:输入一个ip地址,怎么得出它对应的地址locaiton
如果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,但留在猪场大概已是定局。
转载:https://blog.csdn.net/qq_29971371/article/details/102219412