2023秋招 游戏客户端 个人笔经汇总
主要是记录了笔试时间、时长、题型,供来者参考。
顺便分享下我的编程题代码管理框架:CodeforcesStarterPack。
(By the way, 我的秋招面经汇总在这儿,学习经历总结在这儿)
目录
(牛客的文章编辑功能有限,不支持内部超链接好像)
- 08241900 网龙
- 08251900 莉莉丝
- 08260930 灵犀互娱
- 08271400 友塔
- 08271900 腾讯游戏客户端公开课
- 08301900 吉比特
- 08311900 巨人网络
- 09011900 星辉
- 09031900 朝夕光年
- 09061900 剑心
- 09081900 快手游戏
- 09101000 疯狂游戏
- 09102000 腾讯IEG
- 09111900 4399
- 09131800 三七互娱
- 09132000 诗悦网络
- 09152000 腾讯IEG
- 09161900 西山居
- 09171000 米哈游
- 09171615 英雄互娱
- 09201900 游卡
- 09211500 沐瞳
- 09241400 雷火
- 10131900 趣加
- 10142000 库洛(提前批引擎开发岗)
- 10211930 SNK中国
08241900 网龙
60min,100分
糟糕的笔试平台;题量太多;编程题竟然是以问答题的形式给出的。60分钟勉强做完- -
- 单选:15x3
- C++
- 计算机基础(操作系统、网络、数据库)
- 问答1:2x8
- 编译器会自动生成哪些成员函数
- 解释RAII,并举例四个应用场景
- 问答2:1x9
- 改错(浅拷贝导致同一指针多次delete)
- 编程:2x15
- 实现快排
- 实现UTF8字符串的reverse
08251900 莉莉丝
120min,110分
好题!提前40分钟AK~~
- 单选:12x5
- 编程:3{10, 20, 20}
- 重排链表成这样:7->5->3->1->2->4->6。类似于LC-328,常规链表操作题。
- 将循环数组分成段,让两段的权值和的差值最小,输出最小差值。前缀和+二分搜索,。
- 从数组中去除尽可能少的元素,使得剩下的元素满足先严格递增后严格递减。输出去除的元素个数。限制起点/终点的最长递减/递增子序列,。
08260930 灵犀互娱
165min,402分
- 单选:20x5
- 编程:5{50,50,60,70}
- divisable。给定数组和k,统计满足条件{两元素之和能整除k}的匹配数,输出个数。AC。
- minus。找出最长的子序列(题面中说是子串),满足序列内元素极值差不超过1,输出该序列的长度。AC。
- 不记得了,但特别简单。AC。
- maze。给定二维矩阵,从左上出发,到右下结束,可以往右、上、下走。上下边界有wrap,wrap后分数重置。要求计算出离开时能获得的最大分数。80%。
- 给定两字符串,判断能不能从一个变换成另一个,仅使用两种操作:1) 小写字母变大写;2) 删除小写字母。28.57%。
- 游戏经历:1x1。不计分多选题。选出自己玩过的手游品类。
- 游戏经历:1x1。不计分问答题。描述玩过的游戏,可上传附件。
08271400 友塔
120min,100分
- 编程:4{15,20,30,35}
- Codeforces 402D
- 给定一批需求的{value, deadline},每个需求需要一个工作日完成,求出这个月能获得的最大价值。解法是,先按deadline排序;然后动态规划,枚举需求,尝试加入背包(对于d=ddl~1,更新dp[d]=max(dp[d], dp[d-1]+value));最后取出dp中的最大值(因为完成最大价值方案所需的工作日可能比较小;即,dp[d]指前d天每天都工作所能获得的最大价值)。
- 给定二位网格,从左上角出发,上下左右,到右下角,每次移动的时间消耗为目标格子的数值,此外有些格子是障碍物。要求到达右下角的最短用时。解法是Dijkstra最短路算法。
- 给定一堆RGB三维颜色量,要求取出K种颜色构成集合,使得其中任意颜色对的色差()的最大值尽可能小,输出该最小化的集合内最大色差。当时没做出来。但是后来做出来了(并且发现了题源COCI2012-Pastele):如果能用边长为s的轴对齐立方体框住一堆点,那么,这些点彼此间的色差不超过s-1。用二分搜索,来找出能框住至少k个点的最小s。用三维前缀和,来实现立方体空间内的点数统计。
08271900 腾讯游戏客户端公开课
90min,100分
- 单选:10x2
- 多选:10x3
- 编程:50{2道}
- 判断第一个数组能否通过循环右移n位得到第二个数组。不知道为啥只过了50%。
- 给定空间三角形ABC三个点,以及点P,求过点P的XZ平面法向量与三角形的交点,如果没有交点则输出0。来不及考虑没交点的情况,只过了87%。
08301900 吉比特
120min,100分
- 选择题:2.5x16=40
- 填空题:5x2=10
- 编程题:10+15+25=50
- 数组排序。AC。
- 给定牌组,二人博弈,每次从单侧拿取任意数量的牌,两人均采取最优策略尝试最大化彼此间的分数差值,要求最优策略下先手会比后手高多少分。博弈动态规划。好像是骗了10%?
- 魔法豆,宠物,一只之外的全部… 总之来不及看,也就没做。好像是骗了10%?
08311900 巨人网络
120min,120分
- 多选:20x2
- 问答:1x20
- 编程:2x30
- 拓扑排序判环。然而题目的测试用例有BUG。输入格式不对;输出只有一种可能。只能骗,而且能骗100%。
- 区间最大值、区间更新的线段树。可惜来不及调试出线段树版本,只来得及用暴力通过55%。
09011900 星辉
50min
问卷星形式的题…甚至reentrant...
3道编程(1道必选,另外两道2选1)都是LeetCode原题。AK了。
09031900 朝夕光年
120min,100分
但是提前35分钟AK了
- 编程:100=20+25+25+30
- 简单实现数组的相邻元素绝对差值。
- 贪心对字母分组,使得输出字符串中每种字母出现至少两次,且统一字母的各实例的距离最小为k。
- 二维网格图上找规律。
- 给一堆怪的血条,要求给出对战表,使得相杀到最后一个也不留,或者只留一个且剩余血量最少。转换为分组问题,把血条分成两组,各组的血条和尽可能相近。进一步转换为01背包问题。
09061900 剑心
90min,90分
- 编程:3x30
- 判断给定的数有多少个奇序列(连续的正奇数组成的序列,序列之和等于该数)。数学规律题。能拆解出奇偶性相同的两个因数,便能构成一个奇序列。AC。
- 给定,给个矩形/圆形攻击判定范围,给定角色当前坐标,要求出最少移动多少格子才能逃离攻击判定范围。栅格覆盖模拟题。AC。
- 给定类似于varint的序列化函数,要求写出反序列化函数。来不及做出来。
09081900 快手游戏
90min,100分
- 单选:8x3=24
- 多选:8x3=24
- 编程:52=15+20+17
- 乘法逆元。AC。
- 大数乘法。AC。
- 给定一个折线路径,沿路行走,每隔s输出坐标。线性插值模拟。AC。
09101000 疯狂游戏
90min,100分
-
编程:50=20+30
- 给定k和target两个整数,问k能否通过任意次k=k*2+1或k=k*3+1变换得到target。解法是DFS从target降解到k,要注意负数情况,以及需要做好剪枝。
- 模拟题。按照规则交换数组中部分区域的元素即可。
-
问答:1x50
要求讲自己的一个项目,给出这几方面的阐述:
- 关键技术点
- 时间/空间复杂度取舍
- 应用了哪些设计模式
- 设计不足与解决方案
- 最大挑战
09102000 腾讯IEG
120min,100分
- 编程:5x20=100
- 二叉树DFS统计满足条件的根叶路径数量
- 使用两个multiset维护动态数组的中位数
- 贪心求解最大的差之和
- 数学规律+模(快速)幂
- 动态规划。但是当时没想出来,写了二分,能过样例。
(牛客的评测机炸了,系统不给评测,不知道AC没;运气好的话应该能AC掉4个,第5题能得到部分分)
09111900 4399
120min,120分
- 单选:10x2=20
- 编程:18+26+36=80
- 给定字符串,要求计算出其中满足条件{形如012...9的数字递增}最长子串,且要求。遍历一遍就好。
- (竟然)要按照LeetCode格式建树,然后才能做题。给定二叉字典树,DFS所有叶根路径,找出字典序最小的。
- 生命游戏模拟。
- 问答:10x2=20
- 大学期间课余时间怎么度过的,投入最多的事项是什么,为什么,有什么成果
- 有没有遇到过复杂或困难的问题,怎么解决的
(没有OJ判分,输入输出格式不规范,这个笔试平台属实不太合格)
09131800 三七互娱
90min,100分
- 选择题:20=10x2?
- 问答题:80=10+15+15+20+10+10
09132000 诗悦网络
60min,110分
- 单选:10x6=60
- 问答:2x5=10
- 编程:20x2=40?
- 实现冒泡排序
- 找出链表的中间结点
09152000 腾讯IEG
120min,100分
- 编程:20x5=100
- 链表排序。AC。
- 有序集合。AC。
- 排序。AC。
- 集合+字典序。AC。
- 滑动窗口+前缀和。骗分6.67%。
09161900 西山居
120min,120分
- 单选:5x5=25
- 多选:5x5=25
- 填空:2x5=10
- 编程:40
- 用lambda递归实现斐波那契。AC。
- 买股票,maxProfit。AC。
- 问答:1x20=20
- 用C++实现undo、redo的代码框架
09171000 米哈游
120min,100分
- 单选:10x1=10
- 多选:15x2=30
- 编程:3x20=60
- 分词和判断回文。AC。
- 贪心排序。0%。
- 数值5进制模拟。AC。
09171615 英雄互娱
60min,60分
- 编程:3x20=60。都很简单,AK。
- 快慢指针找环的入口。AC。
- 忘了。但反正AC了。
- 完全背包,用硬币凑金额。AC。
09201900 游卡
90min,100分
- 单选:2x10=20
- 多选:2x10=20
- 编程:3x20=60。提前50分钟AK。
- 将数组中的0移到尾部
- 级数展开估计圆周率
- 不用比较运算符求两个32位整数中的最大值
09211500 沐瞳
60min,100分
- 单选:9x8=72
- 问答(编程):1x28=28。提前40分钟AK。
- 删除单链表中指定取值的全部节点。AC。
09241400 雷火
180min,100分
- 编程:100=15+25+30+30
- 模拟。AC。
- 暴力模拟。(记录每个玩家的草丛编号集合)。AC。
- 01背包变种。(同类属性的属性值保持正数,不同类的改为负数,从而转化为限制物品数量的、存在负数的01背包问题)。AC。
- 类似于CF上的这一题。只得了1.67%分。
10131900 趣加
90min,100分
- 单选:15x2=30
- 多选:5x3=15
- 填空:5x3=15
- 问答形式的编程:15+15+10=40
- 计算数组中最大的连续元素和
- 判断两颗二叉树是否相同
- 实现String类的几个基本的成员函数
10142000 库洛(提前批引擎开发岗)
120min,80分
- 问答:8x10=80
- 其中有一道编程:一维坐标轴上,维护线段集合,提供三个操作:添加线段、删除线段、查询与指定线段重叠的全部线段。没做出来,只写了暴力解法。
10211930 SNK中国
90min,100分
- 单选:10x2=20
- 填空:4道,14分
- 问答:5道,31分
- 编程:5+5+10+15=35分。有编译运行的功能,但是没有测试用例评分;只要不报错就能通过评测;所以,得自己在代码里写测试用例才能测到代码正确性。
- 实现简单的String类。
- 计算数组中最长连续1的长度。
- 计算字符串数组中的最长公共前缀。
- 计算矩阵中的最长递增路径的长度。