网一初级研发面经

1、首先讲了项目
2、TCP、UDP区别
3、阻塞和非阻塞的区别,如果阻塞模式下开多线程,那么它的性能与非阻塞对比
4、vector扩容机制,一个vector初始容量为1。扩到N的时间复杂度,估算往一个 vector 插入N个元素的时间复杂度。
5、vector要想释放一段内存用什么,resize会不会释放内存
6、new和malloc 的区别,要想new不抛出异常怎么办。
7、new[]不配合delete[]使用会发生什么情况,为什么。
8、洗牌算法。
(https://www.nowcoder.com/discuss/230192?type=post&order=time&pos=&page=1)

简历里主要是java
1.TCP 和UDP 的区别
2. java容器 list 的区别
3. java 反射机制
4.有没有用过别的语言
5.面向对象的主要特征,我人傻了,忘了说指针
6.图的遍历算法
7.拓扑排序
8.最短路径规划
9.M中取N个 数字ID
10. 一万个数中 取出最大的200个
11. 整数逆转
(https://www.nowcoder.com/discuss/303834?type=post&order=time&pos=&page=1)

10.15更新,一面问这么简单的问题居然还过了。要么很多人拒offer hc空出来了,要么初级游戏研发问题就这么简单。

1.后续遍历,递归非递归
2.链表反转
2.c++继承与多态
3.模板
4.stl(从vector,priority_queue,map,hash_map,unordered_map都讲了一下,面试官可能没兴趣,我就主动扯了半天哈希,他问了一下哈希函数)
5.dns
6.tcp ip socket编程(讲了python里面的api)
7.纯虚函数
比我之前投的游戏研发的暑假实习还简单。答的不好,但是很感激面试官一直鼓励。
感觉之前暑假实习面的游戏研发有代表性一点,发一下面经(人生第一次面试,答的乱七八糟)
1.c++内存模型
2.tcp和udp的各种比较,以及如何用udp实现tcp然后游戏的通信协议借鉴一下tcp的一些机制在udp上怎么改比较好(这块问了很久,真的有这么个给游戏用的通信协议)
3.二分搜索
4.一道leetcode上面的hard题目,哪一道忘了
5.python很多字符串想加,时间复杂度,如何改
6.进程线程,阻塞非阻塞。
7.python select库用过吗讲讲,本质是同步还是异步。
8.继承多态。
9.一道游戏场景题
10.linux常用指令
11.stl
12.dns 然后这是用tcp还是udp连接
13.爬虫以及反爬虫策略
14.笔试复盘
15.内存对齐
16.隐式inline
(https://www.nowcoder.com/discuss/267307?type=post&order=time&pos=&page=1)

最开始是现场笔试,给半个小时写一个编程题
我的题是一个字符串求出最长不重复子串,比如abcdefgedsccb。最长不含重复字符的子串是abcdefg
一面:
先问了c (我学java的,c 早忘了,大一还是大二学过),我直接说了不太会,然后面试官估计就问的c 基础。虽然我还是不会。。
写个拷贝构造函数的声明,参数为什么要加const。浅拷贝还是深拷贝~
写个等于操作符重载的声明
什么情况会调用拷贝构造,什么时候调用的赋值
c的编译过程,每一步干什么,生成什么文件
头文件是否参与编译
如何防止头文件重复编译
static关键字的作用
协程了解吗?yield
c 怎么调用c文件中的方法(答不会😂,没这么干过)
用过vs11吗,答没有(都用的java😂)
有一堆10块,20块,30块,要组成100块,有多少种方案,顺序不一样也是一种方案。
给你一个圆,如何等概率的生成一个点。
两个有序数组,要求不用其他空间,都只遍历一遍,得到两个数组对应集合的差集。A-B B-A都要求到,数组中可能包含重复数字,比如A 1 2 2 5 6
B为2 4 7
A-B就是1 5 6
B-A就是4 7
如果B不包含2时,A-B中应该有两个2
二面,简单聊了下项目,没问项目的问题,聊了聊各个项目自己的收获。
然后开始问算法思路~
redis用过吗,能否持久化,和memecache区别。如果你自己实现一个纯内存化的缓存,应该怎么实现。
如果要加淘汰算法,比如只保存最近活跃度100个用户,也就是不经常使用的淘汰算法,应该用什么数据结构怎么去实现。
给一个数组,每个数都在1-n之间。不能用其他空间,找出只出现1次的所有数字
给一个有序数组,求中位数(先说的排序再求的笨办法,后面要改进,只想到了部分快排的思路)
如果这个数组变成流失输入,如何实时的得到中位数
多线程问题,比如说买道具,有增加道具,和扣款两个操作,现在不能用事务,多线程各自去操作。如何保证两个的顺序,假如要求先扣完款再加道具
给一堆ip区间和每个区间对应的地点。再任意给个具体ip,查出对应的地点。
大致就回想到了这些~
祝大家都拿到满意的offer...
(https://www.nowcoder.com/discuss/110558?type=post&order=time&pos=&page=1)

问题顺序和编号大体一样
inline有什么用
STL用得多吗?vector扩容,map用的什么实现?
段页内存管理
static用法,const用法
多态,虚函数,虚函数表
重写和重载有什么区别
TCP UDP区别 ,三次握手
进程线程区别,内存分配方式
内存模型
虚拟内存和物理内存区别,自己写的代码运行在哪
内存对齐
图的最小生成树
http什么的知道吗
LINUX的VFS
指针和引用区别,作参数区别
讲讲快速排序,复杂度多少
什么是稳定排序
做两道题吧,:
top-K最小复杂度,只用快排怎么找top-k
一个字符串,找最长无重复字母子串,
两个栈实现队列
内存里加载了10个资源,有10个新资源等待加载,怎么调度;
图形学了解吗?(不太了解)
有什么问题问我
(https://www.nowcoder.com/discuss/95079?type=post&order=time&pos=&page=1)

今天去上海网易参加了网易初级游戏研发工程师的面试
代码题(个人感觉挺简单的吧)
一面:因为自己非科班出身,项目没怎么问
讲一下代码题
new/malloc区别
虚函数 多态
列表初始化
const的各种作用
static的各种作用
堆,栈
智能指针
内存对齐(给一个类问类的大小,为什么要内存对齐)
设计模式(随便介绍一个,我就简单说了observer的原理,用什么结构实现? 链表)
手撸反转链表,top-K(大家可以看一下BFPRT O(N))的算法,似乎很加分
图形学。。不会
TCP/UDP 三次握手,四次挥手,如何实现UDP的可靠传输
线程,进程的问题(临场忘了。。不会)
死锁的四个必要条件
个人感受:一面大约一个多小时,还算比较简单,都是C++基础知识,面试官很nice,算法还是要扎实。
二面:噩梦般的体验(一首凉凉送给自己)
项目做得比较简单(你项目不行啊,心态开始炸了。。)
c++11特性
智能指针(底层实现,引用计数)
面试官还就引用计数问了一个a指向b,b指向a,他们的引用计数都为1,你会怎么处理?(有人会的话请告诉我,谢谢)
然后直接来了四道算法题(既然你喜欢刷题,那就来做题吧。。。)
(1)2,3,5元的硬币,凑出M元的方法 (动态规划,动态转移方程,递推式)
(2)一个数轴上,有一堆点,每个点向左向右有一个速度,问两点相遇的最小时间 O(N)的算法(我现在才意识到。。好简单啊。。。)
(3)一道海量数据(哈希函数的设定)(之前看面经 看着简单,做起来好无奈啊)
(4)leetcode原题(困难)我记得我有刷过,但是忘了(哈哈哈。。。。)
感受:二面的面试官也很nice,但是可能因为自己抗压性不够吧,题意没理解清,做题的时候节奏有点乱。
不管怎么样,还是很开心能参加网易的面试
(https://www.nowcoder.com/discuss/112805?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/111003?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
(https://www.nowcoder.com/discuss/94899?type=post&order=time&pos=&page=1)

先说一下整个经历,我是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 的学习方法)
问题还有一些不记得的了,都不算太难,不过两轮面试自己答的都不算好,所以一度觉得自己凉了,结果都把我捞回来了2333
我是真的菜,不过除了技术之外别的都挺好的(自认为),对我来说现场面试比电话面试简单一点,现场面的都过了,跟面试官都聊得挺愉快的。
我个人是对游戏研发非常有兴趣的,所以进了网易互娱也算是实现了理想吧,最后非常感谢牛客网和这里的各位大佬们,秋招这段时间给了我很多帮助,希望大家都秋招顺利~
(https://www.nowcoder.com/discuss/107050?type=post&order=time&pos=&page=1)

一面前有一道笔试题,不透露就不说了
一面的面试官很 nice 一见面就说我笔试成绩很不错 感觉这让我的第一印象很好。
内联函数
重写和重载 覆盖
用 c 实现重载 (我很绝望啊。。。)
创建派生类对象时 构造函数调用顺序
虚函数的实现
用 C 模拟虚函数 (绝望。。)
虚函数可以内联吗
STL 容器和算法 (我刚看完 stl 源码 状态很好 一直是我在说)
vector push_back时间复杂度
socket 代码怎么写
拥塞控制
虚拟内存 物理内存
操作系统啥的 (我不会呀。。)
二面
二面之前有段小插曲,我以为一面结束就可以跑路了,结果跑一半看的 0571 的未接电话,打回去是网易的 HR 让我回去二面,感谢小黄车,让我感受到速度与激情。
const 的用法和作用
dynamic_cast static_cast
java 的反射机制
项目
遇到的困难
因为我之前在边锋游戏实习过一段时间,了解了一下实习做了什么,顺便问了 lua 和 cocos2d 的东西
然后是俩题游戏设计 和这个老哥的二面几乎一模一样
吃鸡地图高度转换成 [0,1.0]的数组 然后提需求修改 (手写代码)
平面吃鸡判断击中谁 我使用数学思路来回答的 用向量啥的。
手写二叉树遍历 提要求需求如何修改 我想法是传递函数指针
设计模式会哪些呀
聊人生 聊理想
(https://www.nowcoder.com/discuss/97989?type=post&order=time&pos=&page=1)

全部评论

相关推荐

1 2 评论
分享
牛客网
牛客企业服务