7.24乐信圣文实习岗游戏客户端面试

搞不动了,没心思刷算法题了。分享一下今天的面经。

重点是数据结构和算法,和一点点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:不断递归,终止条件是这个节点是空就return

Q:如果用非递归的方式怎么实现深度优先遍历?
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的组件,这个好久没做了,现在没想起来叫什么。

很多地方都在想,吱吱唔唔没答出来,后面反问面试官对我的建议,说数据结构是基础,不管找啥工作都需要学好,可以加强一下。

后续:应该是无了。
全部评论
这个数据结构的问题确实很基础,答不出来不太好。。
点赞 回复 分享
发布于 07-25 00:21 浙江

相关推荐

不愿透露姓名的神秘牛友
07-14 14:44
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

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