字节跳动游戏研发三面面经
一面:
1.c++中const和define的区别,用const或者用define的好处是什么
2.volatile关键字,inline关键字,原理
3.乐观锁、悲观锁,c++中用过哪些锁,c++中有乐观锁吗
4.数据库三范式,索引,为什么用B+树
5.设计模式知道哪些,实际用过哪些
6.两个有序数组去掉重复的元数,时间复杂度多少,改成无序数组怎么做(我说用stl的map,面试官:map的底层?红黑树,考虑map的查找,算法的时间复杂度是多少?)
7.redis问了一下
7.然后就是项目,实习经历
二面:
1.c++ 中的Union,Union{char,int}内存占多少
2.c++多态,虚函数原理
3.堆和栈
4.有平面上的一个三角形和一个点,怎么判断这个点在三角形内?(提示:叉乘怎么判断?点乘怎么判断)
5.线程和协程的区别,线程池的设计要注意什么?
6.递归和动态规划区别?动态规划的好处是什么
7.算法题:动态规划求最大连续子序列的和
三面:
1.用过c++11 17 或20吗,里面有什么新的功能?我说c++11,用过智能指针,auto,std::function
2.智能指针用过哪些,share_ptr,unique_ptr,weak_ptr,他们的区别?要你自己实现一个share_ptr怎么做?
3.场景题:多个player、npc、moster,怎么查找一个玩家圆形范围内的其他player、npc、moster.
4.场景题:游戏排行榜怎么设计,用什么数据结构
5.喜欢玩什么游戏?要你设计一个游戏你想做哪一种?
6.有什么问题要问