蚂蚁集团秋招笔试 – 20220922

单选题

1. 进程是Linux系统中的基本概念。进程管理是Linux系统中非常重要的一部分内容,下列选项中,关于Linux系统进程和进程管理的有关结论,正确的是
A. Linux用户态中维护着一张表,里面记录了当前系统运行的所有进程相关信息
B. Linux会综合考虑各种因素决定进程的优先级,无法人工干预
C. Linux系统中谦让度低的进程会更早地被CPU进行处理
D. Linux系统中进程有多个属性参数,其中PPID代表当前进程的ID

2. 现有一张表school,现在要为该表的’username’字段和’age’字段创建联合索引,以下语句正确的是
A. CREATE UNIQUE INDEX test_index ON SCHOOL(username) and SCHOOL(age);
B. CREATE INDEX test_index ON SCHOOL(username) and SCHOOL(age);
C. CREATE INDEX test_index ON SCHOOL(username, age);
D. 其它选项都不正确

3. 在Redis中,我们把访问频率高的key,称为热点key。下列关于热点key的说法,不正确的是
A. 用户消费的数据远大于生产的数据,会产生热点key
B. 请求分片集中,超过单Redis服务器的性能,会造成热点key问题
C. 热点key问题会引发缓存雪崩
D. 使用二级缓存,即JVM本地缓存,减少Redis的读请求,可以缓解热点key问题

4. 现在有一个数列:[1,1,1,1,0,1,1,1,0,1,1],你每次操作可以将一个数字1改为0,现在要求任意位置不能出现连续的三个1,请问你至少进行()次修改操作才能让数列满足上述条件。
A. 1
B. 2
C. 3
D. 4

5. Linux系统中管理员需要定期对当前登录的用户数进行管理。给定如下需求,如果某个系统中当前用户的数量小于100,则输出“YES”,下列选项中,正确的命令是
A. [`who | wc -l` -le 100] && echo “yes”
B. [`which | wc -l` -le 100] && echo “yes”
C. [`who | wc -w` -le 100] && echo “yes”
D. [`which | wc -c` -le 100] && echo “yes”

6. 已知关键字序列6,9,13,20,29,21,16,24是小根堆,插入关键字4,调整好后得到的小根堆是
A. 4,6,13,9,29,21,16,20,24
B. 4,6,13,9,29,21,16,24,20
C. 4,6,9,29,13,21,16,24,20
D. 4,6,9,13,29,21,16,24,20

多选题

1. 给定一个表达式:A-B*C+D/B,如果表达式为数或简单变量,则相应二叉树中只有一个根结点,其数据域存放该表达式自己;如果表达式=(第一操作数)(运算符)(第二操作数),则相应的二叉树中左子树表示第一操作数,右子树表示第二操作数,根结点的数据域存放运算符。下列叙述正确的有(),构建的二叉树根节点为+。
A. 表达式的二叉树为:

B. 该表达式的波兰式:+-A*B/CDE
C. 该表达式的中缀表示:A-B*C+D/E
D. 该表达式的逆波兰式:ABC*-DE/+

2. 下列是有关缓冲区的一些描述,说法正确的是
A. 缓冲区是介于高速设备和低速设备之间
B. 缓冲区可以存放低速设备传递给高速设备的数据,这些数据在低速设备不一定有备份
C. 缓冲区可以存放低速设备传递给高速设备的数据,这些数据在低速设备一定有备份
D. 高速设备和低速设备的通信都要经过缓冲区

3. 下列关于死锁处理方法的叙述正确的有
A. 死锁的预防较为保守,宁可资源闲置
B. 死锁的避免是在运行时判断是否可能死锁,但是必须知道将来的资源请求
C. 死锁的检测允许对死锁进行现场处理
D. 死锁的避免可能会使进程长时间阻塞

4. 串是由零个或多个字符组成的有限序列,下列关于串的存储结构的叙述正确的有
A. 用于线性表的存储结构也适用于串
B. 串的定长顺序存储结构中串的存储空间在编译时完成,不可更改
C. 串的动态存储结构下串的存储空间在程序运行时动态分配
D. 串的链式存储结构和堆结构的存储方式都属于串的动态存储结构

5. 下列数据结构中,哪些是线性结构
A. 队列
B. Map集合
C. 栈
D. 二叉树

6. TCP是面向连接的运输层协议。假设有两个合作方,分别是合作方1与合作方2,他们彼此之间需要发送报文,其初始的序列号分别为A和B,其中合作方1给合作方2发送的报文为SYN=1,序号=A(第一次握手),合作方2接收到报文后也需要发送报文给合作方1(第二次握手),最后合作方1再次发送一个确认报文便和合作方2建立了连接(第三次握手),其中ACK的括号部分代表捎带的序号,下列选项中,对于第二次握手时对应的报文信息,错误的选项是
A. SYN=1,序号=A+1
B. SYN=1,序号=A+1,ACK(A)=1
C. SYN=1,序号=B,ACK(A+1)=1
D. SYN=1,序号=B,ACK(B+1)=1

算法题

1. 小红的区间查询

题目描述:
小红拿到了一个仅由正整数组成的数组,她有以下两种操作:
1. 输入1 i x,代表将第i个正整数修改为x。
2. 输入2 i x,代表查询前i个正整数有多少个数等于x。

输入描述:
第一行输入两个正整数n和q,代表数组长度和操作次数。
第二行输入几个正整数ai,代表初始的数组。
接下来的q行,每行输入三个正整数op,i,x,用空格隔开,其中op代表操作的类型,i和x的含义见题目描述。
1≤n,q,ai,x≤200
1≤op≤2
1≤i≤n
保证至少有1次询问操作。

输出描述:
对于每次询问,输出一个整数,代表查询的结果。

示例1:
输入:
5 3
1 2 3 4 5
2 3 1
1 1 2
2 3 1
输出:
1
0

说明:
第一次为查询操作,此时数组为[1,2,3,4,5],前三个数中有一个1。
第二次为修改操作,将数组修改为[2,2,3,4,5]。
第三次为查询操作,此时数组为[2,2,3,4,5],前三个数中没有1。

2. 小红的数字串

题目描述:
小红拿到了一个数字串(由’1’~’9’组成,不含’0’),她准备截取一段连续子串,使得该子串表示的正整数小于k。你能帮她求出有多少种截取方案吗?

输入描述:
第一行输入一个数字串,长度不超过200000。
第二行输入一个正整数k。
1≤k≤10^9

输出描述:
小于k的截取方案数。

示例1:
输入:
1234
23
输出:
5

说明:
共有1,2,3,4,12这五种截取方法。

3. 小红的矩阵构造2

题目描述:
小红想让你构造一个n行n列的矩阵,矩阵中的元素为1到n^2,每个数只出现1次,小红希望每个2*2的子矩阵中元素之和均为奇数,你能帮帮她吗?

输入描述:
一个正整数n。
1≤n≤100

输出描述:
如果无解,直接输出-1即可。
否则输出n行,每行输出n个正整数。有多解时输出任意合法解。

示例1:
输入:
3
输出:
1 3 2
7 4 6
9 5 8

说明:
四个子矩阵的和分别为15、15、25、23,均是奇数。

示例2:
输入:
2
输出:
-1

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注