bigcollegefw level
获赞
11
粉丝
7
关注
5
看过 TA
252
安徽黄梅戏艺术职业学院
2024
Unity3D客户端
IP属地:安徽
😉
私信
关注
搞不动了,没心思刷算法题了。分享一下今天的面经。重点是数据结构和算法,和一点点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道真题和解析
0 点赞 评论 收藏
分享
第一部分 一分钟自我介绍Q:问我在哪(看我后面像自习室)A:我在学校Q: 我在学校最近在学啥?A:最近在学C++和做项目第二部分:C++Q:面向对象的三个特征?A:封装继承和多台Q:C++怎么实现多态A:虚函数和虚表指针Q:讲讲C++的虚析构函数A:回答了要在父子类中使用,这样子类要重写析构函数,才能正确释放资源Q:C++的智能指针A:回答了三种指针指针Q:share_ptr的底层实现A:就只说了引用计数,销毁后指向内容的引用计数为0就自动释放。Q:weak_ptrA:weak_ptr的具体作用Q:什么是内存泄漏A:分配的内存在结束使用后没有及时释放第三部分:项目Q:做的最满意的项目是哪一个A:回答都挺满意的,但是我说肯定的最近做的一个项目最熟悉。Q:问了一下是用状态同步实现还是帧同步实现A:回答用状态同步。后续问我为什么用状态同步,讲了讲状态同步的好处,还有预测算法,帧同步的坏处,网络不好就会卡顿。Q:问了一下协议里封装了哪些消息,怎么传送信息。A:答的比较模糊,这一块我还是比较清晰的,但是面试官不继续追问就过了。Q:问我简历的二进制、Json 及 PlayerPrefs 三种存储方案。问三种数据结果在我在项目中分别是怎么使用的。A:这里不太清晰,印象中就说了二进制没咋用,只是为了兼容性而写,主要用Json,记录关卡数据,PlayerPrefs主要实现了音量调节。Q:问有没有进行过性能优化A:没有,说平时在代码层面优化一些细节,追问哪些细节,举了对象池,ScriptableObject,进行逻辑的解耦,又追问了我逻辑解耦的例子,讲了写简单的UI框架。Q:问我图形学学过没,问我学习资料是什么A:回答有点忘了,后面还是问了我渲染管线,这个我记得。Q:问我写过什么Shader,具体怎么实现A:像边缘发光,例子溶解,这个我是真忘了。Q:如果Shader有问题应该怎么调试A:不知道最后就做一道编程题用数组实现队列。包含入队和出队的方法。一开始要用Vector,补充说不用Vector,用原始的数组。看他在看着我写,一时间没动手。后来说想不出来可以用Vector,我想着要用模版来实现一个范型,但是我忘了模版怎么写了,就直接默认了一个int类型的队列。算法拉了。。。后面追问如果多线程应该怎么保证安全,说明加锁,并且用了Csharp实现怎么加锁反问,这是秋招还是实习,后面是先实习还是直接毕业后去。对我有啥建议——没啥建议,都还不错(真的假的)
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务