mminn1203 level
获赞
18
粉丝
9
关注
4
看过 TA
214
华南师范大学
2024
Unity3D客户端
IP属地:广东
暂未填写个人简介
私信
关注
技术一面(60min)1、拷问项目:阴影怎么做的,有做阴影烘培吗,车辆行驶怎么做的2、拷问实习:抽奖活动怎么做出来的3、给一个排好序的数组,如何构造平衡搜索树,如何以第一个元素或者最后一个元素都根节点会有什么问题4、如何判断链表有环5、哈希表冲突的解决方法(答出两种以上)6、两个数交换,不用到第三个变量(位运算、加减乘除)7、说说C++的多态8、多态的实现机制,虚函数的实现原理9、什么函数不能用作虚函数(构造、静态)10、内存对齐11、如何设计背包逻辑,如果有一万个背包呢?如何显示(对象池+动态显示)12、手撕算法:给定一个包含0,1,2共n个元素的数组nums,原地对它们进行排序,使得相同的元素相邻,并按照0,1,2顺序排序。不能使用sort,只能扫描一遍,只能使用常熟空间(面完就约了二面)技术二面(60min+)01、讲讲实习经历,为什么当初从上一个实习公司离开02、在目前的实习公司有没有得到你想要学习的,或者说目前待的公司是否满意03、满意的话为什么还要尝试外面公司的招聘04、你认为你的项目中做得最难的几个系统是什么05、点光源做太阳,性能会消耗很大,有没有什么优化的方法(对于不变的阴影可以提前加载静态阴影贴图)(点光源换成方向光)06、玩家看到太阳会产生强烈光晕的效果,这种效果有什么比较好的实现方案?(摄像机发送射线,检测到太阳模型后摄像机做后处理)07、项目中的导航怎么实现的,烘培导航网格还是实时计算08、NavMesh的底层实现有了解吗(A*算法,Mesh烘培?)09、说说A*算法10、对角线行走和水平竖直行走的代价消耗区别(1和根号2)11、什么情况下会导致A*算法得到的最终路径不是最优解?(h(n) > 两点之间的直线距离?忘了 要补补)12、A*算法如何更快地找到终点(增大h(n)的权重)(需要补补)13、设计模式,熟悉哪些设计模式(我讲了单例和观察者)14、简要讲讲单例和观察者模式的理解(单例:统一访问点,观察者模式:业务逻辑解耦)15、口嘶算法:给n堆矿石,可以两两组合,但会有对应消耗,最终需要合成一堆矿石,问最小消耗。有什么思路(贪心,哈夫曼树)16、反问环节(公司晋升机制)第二天,挂了,算法基础不牢,吸取教训下次加油!
投递友塔游戏等公司7个岗位
0 点赞 评论 收藏
转发
这里说一下自己的思路,欢迎各位大佬一起交流先回顾下题目:在中国象棋中,马的移动方式是按照 "日" 字行进:如果马在一张无限大的棋盘上,起始坐标为[0, 0],我们给定想要去的目标点 [x, y],要求输出马移动到目标点需要的最小移动次数这里我用的是BFS,也就是广度优先算法(1)为什么用bfs而不用dfs?为什么会想用广度优先遍历呢?而不是用深度优先遍历呢?因为这里的题目为:"棋盘无限大" ,所以我们没有边界可以判断,所以如果用深度遍历,可以一直递归下去,这样我们很难找到最小跳跃次数。但如果用广度优先遍历,第一层遍历就是起点的八个跳跃点,此时每个点的跳跃次数都为1;第二层遍历的话跳跃次数为2,所以只要我们找到了跳跃点为目标点,就可以直接把跳跃次数输出,ta就是最小跳跃次数。因为第一次遍历,考虑的是跳跃次数为1的情况能不能到目标点,第二次遍历考虑的是跳跃次数为2的情况能不能到目标点比如我们跳到了目标点,跳跃次数为4,则说明了:跳跃次数为1、跳跃次数为2、跳跃次数为3的所有跳跃可能都找不到目标点,而跳跃次数为4找到了目标点,所以最小跳跃次数自然为4了(2)(2)思路起点为【0, 0】当跳跃次数为1次的情况(如下图1所示:)即跳跃次数为1的情况有8种当跳跃次数为2次时,就有64种情况了,结合之前跳跃次数为1的情况就有 8 + 64 = 72种情况(如下图2所示:)当跳跃次数为3次时,就有8*8*8种情况了,结合之前的情况就有 584种 情况所以当我们找到目标点时,看目前遍历的格子数量在哪个区间,就可以得到跳跃次数了,第一个遍历到的目标点也肯定是消耗了最小的跳跃次数(3)代码示例如下图3所示
投递西山居等公司7个岗位
0 点赞 评论 收藏
转发
牛客网
牛客企业服务