【求职】小米 2018 春季实习生服务端开发工程师笔试题

一、单选题
1.对于排序算法,经常关注的是其时间复杂度和稳定性。下列排序算法中平均时间复杂度是 O(nlogn)且稳定的是?
( )
A. 冒泡排序
B. 插入排序
C. 归并排序
D. 堆排序
E. 快速排序
2.经典的 OSI 模型定义了一个七层网络协议,下列协议中属于网络层的是?()
A. IP
B. TCP
C. UDP
D. HTTP
3.在面向对象编程里,经常使用 is-a 来说明对象之间的继承关系,下列对象中不具备继承关系的是?( )
A. 手机与小米手机
B. 企业家与雷军
C. 编程语言与Java
D. 中国与北京
4.一个树高为6 的平衡二叉树,其节点数可能是?( )
A. 16
B. 32
C. 64
D. 128
5.一个二叉树的先序遍历结果和中序遍历结果相同,则其所有非叶子节点必须满足的条件是?( )
A. 只有左子树
B. 只有右子树
C. 节点的度为1
D. 节点的度为 2
6.若磁盘转速是 7200 转/分,平均寻道时间是 8ms,每个磁道包含 1000 个扇区,则访问一个扇区的平均存取时间
为?( )
A. 8.1ms
B. 12.2ms
C. 16.3ms
D. 20.4ms
7.下列关于进程和线程说法不正确的是?( )
A. 线程可以称为轻量级的进程
B. 一个进程可以有多个线程
C. 进程之间可以共享资源,比如文件描述符等
D. 线程是CPU调度的最小单位
8.CPU 的指令集可以分为RISC和CISC两种,下列说法不正确的是?( )
A. CISC的指令集更加复杂
B. RISC的CPU更加耗电
C.英特尔德酷睿处理器属于 CISC
D.高通骁龙处理器属于RISC
9.下列关于数据库事务ACID 特性的说法不正确的是?( )
A. A 指的是原子性,即事务中的所有操作要么全部成功,要么全部失败
B. C指的是一致性,即系统的状态只能是事务前的状态,或者是事务成功后的状态,而不会出现任何不一致的中间
状态
C. I 指的是可用性,即数据库系统要为事务执行提供尽 可能高的可用性,确保大部分事务可以成功的被执行
D. D 指的是持久性,即事务成功后即使发生机器断电,也可以恢复到事务成功后的状态
10.德州扑克中总共使用 52 张牌(不包括大小王),每个参与者都会先发两张手牌,请问对于一个参与者来说两张手牌
组成对子的概率是?( )
A. C(13,1)/C(52, 2)
B. C(13,1)C(4, 1)/C(52,2)
C. C(52,1)C(3,1)/C(52,2)
D. C(13,1)C(4,2)/C(52,2)
二、问答题
1.题目描述
给定一个整数数组,包含正负数且无序,找出和最大的连续子数组,比如数组[1,1,-5,6,7,-2],则和最大的子数组为
[6,7],最大和为 13
1.1 定义一个函数,输入是一个整数数组,输出是和最大的连续子数组的和
1.2 假设输入的是一个二维数组,而同时连续子数组的定义扩大为连续的二维子数组,比如一个 3
4 的二维数组
[[-1,2,3,-1],[-2,1,2,-2],[-3,-3,-3,-3]],则和最大的连续子数组是[[2,3],[1,2]],所以最大和为 8,请定义一个函数,输
入是一个二维数组,输出是和最大的连续子数组的和,要求:必须使用 1.1 中函数来求解
1.3 继续扩大二维连续子数组的定义,比如支持左右互联,即二维数组的左起始列可以和右边终止列连在一起形成
子数组,请定义一个函数,输入是一个二维子数组,输出同样是和最大的连续子数组的和,要求:必须使用 1.2 中
函数来求解 解答要求: 请使用熟悉的语言或伪代码,每个函数给出算法复杂度分析
2.题目描述
话费充值是 MIUI 系统软件小米钱包中的一个应用,其主要功能是对用户输入的手机号进行话费充值,充值金额为
30、50 和 100 元。请针对此应用设计测试用例。实现一个数据结构,叫做BoundedBuffer,即初始化时传入一个参
数来定义了 Buffer 的大小,然后有两个 public 方法,put 方法用于存入一个元素,take 方法用于取出一个元素,先
进先出
2.1 实现存储整型的BoundedBuffer,无需线程安全,Buffer 满或空时可以抛出异常
2.2 将2.1 中的整型BoundedBuffer 实现改为泛型
2.3 实现线程安全的BoundedBuffer,同时 put 和 take 如遇到 buffer 满或空的情况,需要 block 住调用线程,直到
buffer 中有空间或者有新数据
2.4 给2.3 的BoundedBuffer 提供带超时的 put 或 take 方法,即调用者可以指定超时时间,如果在指定时间内依旧没
有空间或没有新数据,则抛出异常

解答要求: 请使用熟悉的语言或伪代码,底层存储只能使用数组或链表

求职必备刷题官网:https://github.com/bennyrhys/interview
【更多互联网公司笔试面试真题请关注“让我遇见相似的灵魂”公众号】

猜你喜欢

转载自blog.csdn.net/weixin_43469680/article/details/106691209