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的组件,这个好久没做了,现在没想起来叫什么。
很多地方都在想,吱吱唔唔没答出来,后面反问面试官对我的建议,说数据结构是基础,不管找啥工作都需要学好,可以加强一下。
后续:应该是无了。
重点是数据结构和算法,和一点点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-24 12:13
西安电子科技大学 前端工程师 点赞 评论 收藏
分享

点赞 评论 收藏
分享