腾讯光子一面凉经
记录下光子一面,应该是凉了
项目
- 为什么选择状态机实现Boss的AI,如何实现BossAI状态机,如何实现2D地图中Boss追逐玩家的AI设计
- 介绍A*寻路,如何实现,如何在大地图中进行优化
- 对话系统如何实现,对话系统应该使用什么数据结构,如何实现一个带分支的对话系统且一些对话有前置解锁条件,此时又应该选择什么数据结构
基础
- 数组和链表的区别,数组在什么时候删除元素是O(1)的,如果数组中的元素不要求有序,使用什么方法可以实现删除随机元素是O(1)的
- 二叉树介绍,如何求一个二叉树的最大深度,使用递归有什么坏处。二叉树的层序遍历
- hash算法,hash表的底层实现,如何实现一个hash算法
- lua面向对象的实现,面向对象三特性在lua中分别是如何表现出来的
- UE的反射介绍,Uobject介绍
- 左值和右值了解吗,介绍下左值和右值
- C++如何实现多态,介绍下纯虚函数,如果一个类声明了纯虚函数那么该类的子类一定要实现该纯虚函数吗,子类如何调用父类函数,通过什么方式或者关键字
- 构造函数和析构函数能是虚函数吗,为什么析构函数必须是虚函数
- new和malloc的区别,有没有一种方式可以每次调用资源的时候不用手动new和delete(智能指针)
- 提到智能指针,智能指针的底层实现了解吗(介绍了下shared_ptr)
- 两个sharedptr相互引用会造成什么问题,如何解决
- GC了解吗,什么情况下一个资源会被GC,在有GC机制的语言中(lua, C#),遇到上述两个变量相互引用的情况这两个变量表示的资源会被GC吗
智力题
- 12个球一个天平,其中有一个球的质量和其他球不同,最少称几次可以找出这个球
- 100层楼两个玻璃球,如何以最少次数找出刚好能摔碎玻璃球的那一个楼层,说说思路