小米2018春季实习生服务端开发工程师笔试题
时长:120分钟 总分:100分
315浏览 0人已完成答题
题型介绍
题型 | 单选题 | 简答题 |
---|---|---|
数量 | 10 | 2 |
对于排序算法,经常关注的是其时间复杂度和稳定性。下列排序算法中平均时间复杂...
若磁盘转速是7200转/分,平均寻道时间是8ms,每个磁道包含1000个扇...
德州扑克中总共使用52张牌(不包括大小王),每个参与者都会先发两张手牌,请...
给定一个整数数组,包含正负数且无序,找出和最大的连续子数组,比如数组[...
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中函数来求解
解答要求: 请使用熟悉的语言或伪代码,每个函数给出算法复杂度分析
实现一个数据结构,叫做BoundedBuffer,即初始化时传入一个参...
2.1实现存储整型的BoundedBuffer,无需线程安全,Buffer满或空时可以抛出异常
2.2将2.1中的整型BoundedBuffer实现改为泛型
2.3实现线程安全的BoundedBuffer,同时put和take如遇到buffer满或空的情况,需要block住调用线程,直到buffer中有空间或者有新数据
2.4给2.3的BoundedBuffer提供带超时的put或take方法,即调用者可以指定超时时间,如果在指定时间内依旧没有空间或没有新数据,则抛出异常
解答要求: 请使用熟悉的语言或伪代码,底层存储只能使用数组或链表