雷火游戏客户端(精英实习)一面

没做笔试,直接通知面试,AB面,一面完感觉还可以,二面手撕没撕出来八股也答得一般感觉凉了。
A面
面试官很nice,上来先做了一个自我介绍,逆水寒项目组。整体比较偏简历。

1. 我来一个自我介绍。
2. 问知不知道工业界的GI实现方案,我说我知道比较经典的GI算法如LPV,VXGI,简单介绍了下。工业界的方案我知道lumen,然后说了个lumen的sdf判断光线交点和靠时序做间接光照实现无限次反弹。lumen讲的比较简单,面试官问了我一句是刚开始看吗,有没有在虚幻里搞搞,然后问我nvida的GI方案知不知道,我说不知道。
3. 降噪算法了解吗,我答了一个时序上的优化手段,其实不算降噪,具体的降噪算法不是很了解,也说不了解了。
4. 问简历上的项目,xxxx,和一个个人项目,都简单介绍了一下,xxxxx多问了几句,个人项目明显不是很感兴趣。
做5道题,没有手撕:
1. 概率论,早忘了
2. 多态,easy,延伸问了一下虚表指针、堆栈内存、lambda函数、智能指针和其他一些c++问题,最后拿了个实际场景问string优化,这个不知道了。
3. model矩阵的一些参数,easy
4. 延迟渲染,常规问题,后续问我知不知道deferred light和deferred shading的区别,不知道了,还有移动端为什么还是forward rendering多一点,我猜可能硬件不支持multi render target或者G buffer带宽太大了移动端还是承受不住。
5. 列举知道的抗锯齿算法 SSAA,MSAA,FXAA,TAA

B面
没让做自我介绍,上来直接做题,面试官全程就是感觉很不耐烦,面试体验较差...简历上的东西一句没问。

1. 4种cast转换,reinterpret_cast可以接受哪几种类型?
2. 模板知道吗?知道,没怎么写过。那你写一个看看。写了个a+b的模板。问T是什么,不知道了。问模板怎么实例化,也不知道了。
3. 讲一讲虚继承,解决多重继承。
4. 引用占不占内存。不占
5. 除了函数,哪些场景用引用?类里的拷贝构造和赋值构造。
6. 结构体里有一个引用的话,这个引用占struct的内存吗。类里面写引用?懵了,之前没见过这种写法,没答上来。引用指向的内存是不在这个struct的内存中的,但是引用本身是用指针实现的,要占一个指针的空间
7. sizeof(string)是定长的吗?没听懂,可以自行百度,是定长的,我以为问我sizeof一个字符串。
手撕,给定一个字符串,比如aaaabbbaaaccc,一次操作可以将一串连续且相同的字符变成另一个字符,比如第一次操作可以将bbb变成aaa,或将ccc变成aaa。问:最少多少次操作可以将这个字符串变成由全部相同的字符组成,即全部变成a或全部变成b或全部变成c
一开始的思路:先压缩字符串,aaaabbbaaaccc压缩成abac,然后统计压缩好的字符串中出现次数最多的那个字符的出现次数k,示例为a,出现2次。返回压缩字符串的长度 - k。
提交给面试官,面试官说不对,但也不给我新的样例。我说我感觉这么做当前样例下没什么问题,面试官才又给我了一个样例abababcabacbab,对着这个样例想了半天也不知道哪里错了该怎么做,折磨,直接摊牌了说不会,面试官说那就面到这里吧。

结束面试想搜一下这道题也没搜到,感觉是道hard,没有那么好做。救了大命了,真的写的折磨。

5.16更新 一面已挂
全部评论
大佬是面完之后过了多久凉的啊?
点赞 回复 分享
发布于 05-23 20:22 四川
mark收藏
点赞 回复 分享
发布于 05-19 21:40 上海
请问ab 面算一轮还是2轮
点赞 回复 分享
发布于 05-19 18:45 北京
卧槽,这手撕不是cf里面的d2f的吗,短时间能做出来诗人(
点赞 回复 分享
发布于 05-17 00:19 香港
感觉是不是可以考虑dp而不是贪心,dp[n][26]代表处理到第i字符已经将前面变成26个字母的某字符的最小操作数,虽然我也不懂贪心哪里有问题
点赞 回复 分享
发布于 05-13 07:33 福建

相关推荐

搞不动了,没心思刷算法题了。分享一下今天的面经。重点是数据结构和算法,和一点点UI和c#Q:C#中哪些数据结构是连续的,哪些是不连续的?A:数组,List,dictionary,ArrayList,队列,栈,优先级队列,hashset是连续的,LinkedList是不连续的。Q:Dictionary的这个哈希表是不连续,你知道它的这个哈希算法是什么吗?A:不知道,就回答类似取余的操作。Q:什么是哈希冲突?可以用拉链法来解决哈希冲突,还有什么其他的解决方法吗?A:不知道Q:那如果拉链法来解决哈希冲突,那么去实现这个key的查找的过程是怎么实现的。A:这里答半天没答到点子上。后来面试官提醒说直接key就能找到在拉链上的元素。Q:用一个数组来实现一个可扩容的栈。首先需要对外提供什么借口呢?A:入栈,出栈,返回栈顶元素。Q:在这个各个的方法里面具体需要做哪些元素。A:定一个一个数组大小后,就直接用一个索引指针这个栈顶元素,然后入栈就不断的将这个指针往后面移动。如果大小超过的话就触发一个扩容的接口。Q:二叉树里面有一些特殊的二叉树。知道它的特性吗?A:这个靠印象回答好像是只能缺一个最右下角的节点。活着全部都是不缺的。Q:定义一个二叉树的根节点的高度为0,现在一个高度为h的满二叉树。总共的节点数是多少?A:说就类似一个等比数列求和。忘了求和咋算。面试官告诉我2^(h + 1) - 1;Q:完全二叉树了解吗?A:说左右子树的高度差不可以大于1。Q:但是这样的数不一定是完全二叉树A:不知道。Q:二叉树,怎么实现一个层序遍历?A:回答说通过一个队列记录每一层的元素,依次入队出队。Q:是用递归实现的吗?那这个递归实现的结束条件是什么?A:不太确定,说这个深度等于这个树的高度。好像不是递归实现的,不太记得。Q:如果实现深度优先遍历?A:不断递归,终止条件是这个节点是空就returnQ:如果用非递归的方式怎么实现深度优先遍历?A:不知道。Q:抽象类和接口的区别。A:抽象类不可实例化,接口也不能够实例化。抽象类是单继承,接口可以继承多个接口。抽象类中的抽象方法必须用abstract来修饰,但是接口里面的方法本身就是抽象的,必须被实现。不需要修饰。Q:C#垃圾回收机制了解吗?A:说分代回收,说了三代回收的一个机制。Q:这个回收的具体过程呢,怎么去判断哪些对象可以会回收掉?A:有印象,回答说就是不断去标记一些对象。Q:GC是分代了,但是最关键的是得先回收掉才能分代,最关键的是它怎么清除这一步,后面才是整理。A:没理解要问的是清除的过程还是分代的过程,但我这一块都还不清楚。Q:UI上都用哪些组件?A:这个会。Q:Canvas下有一个属性叫渲染模式 Render Mode,有几种A:屏幕空间覆盖,屏幕空间摄像机,世界空间Q:在Canvas里面有一个分辨率组件,这个是干什么的?A:UIScalerMode,可以控制UI元素在不同分辨率下的缩放逻辑。Q:ScrollView这个组件的使用,用什么组件可以实现列表里物品的排序,A:好像是一个Layout的组件,这个好久没做了,现在没想起来叫什么。很多地方都在想,吱吱唔唔没答出来,后面反问面试官对我的建议,说数据结构是基础,不管找啥工作都需要学好,可以加强一下。后续:应该是无了。
查看21道真题和解析
点赞 评论 收藏
分享
评论
9
41
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务