快手游戏客户端开发8.19笔试

笔试时间:2022年8月19日

1 单选

1)哈夫曼编码

2)

unsigned int a = 0x1234;
unsigned char b = *(unsigned char*)&a;
cout << b << endl;

3)完全看不懂的两种C++单例模式写法(又是各种锁,又是静态),问这两种写法对不对

4)vector调用erase后的迭代器失效问题

5)以下是几进制

15*4=112

6)

#include <stdio.h>
#define VERSION(x, y) #x"."#y
#define MINOR(x) x
#define MAJOR(x) x

int main()
{
    printf("version:%s\n", VERSION(MAJOR(1), MINOR(1)));
}

7)一根指针指向vector的某一个元素,当vector仅调用push_back时,此指针是否会失效

剩下的不记得了……

2 多选

1)以下哪些是堆结构

A 16 53 23 90 31 48
B 90 31 53 23 16 48
C 90 48 31 53 16 23
D 16 31 23 90 53 48

2)智能指针

3)各种容器的迭代器失效问题

4)分配在栈的数据有

A new malloc的数据
B 局部变量
C 静态变量
D 函数调用参数
E 全局变量

剩下的不记得了

3 编程

1)射线碰撞检测

给出三维空间内的射线起点、射线方向、AABB盒的最小点和最大点,判断射线是否会和碰撞盒相交

坐标数据均为Vector3类型

2)猴子下山(剑指 Offer II 100. 三角形中最小路径之和 变型)

改为求最大路径之和

3)数珍珠

有连接在一起的一串珍珠,每一颗珍珠最多和三颗珍珠相连。现需要计算珍珠的重要度。

重要度的计算方法:将该珍珠取下,剩余的1-3堆珍珠的数目的乘积,即为这颗珍珠的重要度。

返回重要度最大的珍珠数目,以及其重要度。

输入:

珍珠数目

N行,珍珠连接关系

输出:

重要度最大的珍珠数目 其重要度

输入样例1:

5
0 1
1 2
2 3
2 4

输出样例1:

3 4

解释:

珍珠的串联形状:
0 - 1 - 2 - 3
     \
      4

第0颗珍珠取下后,剩余1堆珍珠(1234),其总共4颗,故第0颗珍珠的重要度为4;

第1颗珍珠取下后,剩余2堆珍珠(0 234),1 * 3 = 3,故第1颗珍珠的重要度为3;

第2颗珍珠取下后,剩余3堆珍珠(01 3 4),2 * 1 * 1 = 2,故第2颗珍珠的重要度为2;

第3颗珍珠取下后,剩余1堆珍珠(0124),其总共4颗,故第3颗珍珠的重要度为4;

第4颗珍珠取下后,剩余1堆珍珠(0123),其总共4颗,故第4颗珍珠的重要度为4;

最大重要度为4,有3颗珍珠重要度为4

————————
后续补充:已寄

#秋招##2023届秋招##游戏客户端开发工程师##我的秋招日记##面经#
全部评论
前几个看了直接g,这有点离谱
点赞 回复 分享
发布于 2022-09-27 10:32 北京
编程题会考图形学吗,完蛋,我图形学都是好几个月之前看的了
点赞 回复 分享
发布于 2023-08-11 16:32 安徽

相关推荐

11-15 17:19
湖南大学 Java
成果成果成果果:这是哪个公司的hr,这么离谱吗,我没见过用性别卡技术岗的,身边女性同学拿大厂offer的比比皆是
点赞 评论 收藏
分享
Java抽象带篮子:难蚌,点进图片上面就是我的大头😆
点赞 评论 收藏
分享
评论
5
20
分享
牛客网
牛客企业服务