笔试

题量较大,仅记了一些印象比较深刻的题。

题型为选择 + 填空(给C++代码填输出结果) + 编程 编程题不会太难,最难的就一道字符串的全排列(类似剑指offer第38题LeetCode链接)可以使用IDE,主要得把控好选择填空作答的时间,不然就会来不及做。

1.几何数学,点到面的距离,给定一些条件求长方体体积

2.不超过四个节点的二叉树有几种(可用卡特兰数直接计算,具体可以参考该博文

3.哈夫曼编码

4.数据库truncate

5.n个结点的无向连通图,最少有几个边

6.1X3的砖块,铺满3X20的地板,几种铺法?(动态规划)

7.有一栋楼36层,你有2个鸡蛋,找出鸡蛋不会碎的最高层数,试验几次能找出所有情况?(如果想到二分查找就踏入陷阱了,因为本题只有两个鸡蛋,具体可以参考该博文

8.已知在一棵度为4的树T中,若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶子结点的个数为?(同样的考点他考了很多类似的,具体可以参考该博文

一面(技术面)

1.基础和C#

  • 说说反射是什么
  • 异步和线程的关系
  • 使用线程池的优缺点
  • C++内存泄漏
  • C#内存泄漏
  • GC的工作流程
  • 装箱拆箱
  • readonly和const的区别
  • 使用stringbuilder要注意什么

2.Unity

  • 有哪几种光源
  • 物理逻辑为什么要放在FixedUpdate
  • 两个物体要实现碰撞需要什么组件
  • 协程
  • mipmap(没听过,没答上来)
  • 如何优化内存(我答了代码部分,面试官提示我资源管理呢,我答了ab包的管理)
  • 项目的问题,对象池模式的应用

二面(HR面)

HR面记得主要就是聊天,因为是实习生招聘,所以没有太多问题吧,还是针对简历问了一些平时怎么学习,为什么选择吉比特,为什么选择做游戏开发之类的问题。

三面(技术终面)

1.基础部分:

  • C#:

    async与await

    内存泄漏,gcroot如何定义

  • C++:

    智能指针,右值引用,内存泄漏

  • 最小生成树算法,如何判断成环

  • 如何解决哈希冲突

    如果冲突较多,如何优化

2.手撕代码部分:

  • 堆排序
  • 并查集
  • 线程安全的单例模式

最后是一道逻辑测试题,面的时候觉得自己答对了,面完后才发现答错了,其实是很简单的问题,但当时太过于紧张了,不够冷静。

面试都采用了牛客网的视频面试,最终三面被刷,觉得主要原因是因为C++的题答不上来,然后并查集没有成功撕出来,还是当时面试经验太少了,面对大佬手抖得不行,代码出了问题脑子就一片空白哈哈。

05-11 13:17