2022.09.16满帮笔试
题目类型:25道选择,两道编程
选择题:
之前看帖子就有人说满帮笔试选择题难度比较大,什么都考,今天一做果然真的是非常综合。
印象比较深的有:零比特填充法;HashTable、HashMap、ConcurrentHashMap的底层结构、是否能用null值null键;带权周转时间;双绞线、光纤、同轴电缆;反射;软件危机;MySQL查询姓名第二个字为'三'的写法,树的节点数和节点度数之和的关系;Linux哪个目录不占磁盘空间;TCP拥塞控制……
基本上数据结构、操作系统、计算机网络、Java基础、MySQL、Linux都考到了,挺多不会做的。
编程题:
两道难度都不是太大。
- 第一道题它的题目大意是:俩人吃一堆糖,一个人一次只能吃1~2个,最后俩人将这堆糖一人一半全都吃完,问在吃糖的过程中,俩人的吃糖数相差最大是多少?
给的输入是第一行俩数分别表示一共吃几次和最后一人吃了多少个糖,第二行是吃糖的序列,就是每次吃了多少个糖(这糖不一定被谁吃了)。
刚开始根本没看明白题,觉得最后都说了俩人吃糖一样,咋还问吃糖数相差多少,后来明白了,俩人是最后达到一致,中间过程可不一定一致,求的就是中间相差最多的场景。
思路:
这题既然要求最大值,我直接思考刚开始全都给一个人糖,另一个人一直吃0个。
吃到最后有两种情况,第一种是他还剩一个糖就到限额不能再吃了,但是面前这堆有两个糖,那他肯定不能吃超了,一定是另一个人吃了这堆糖,最大值就定格在了当前这个值(前面的人再怎么吃,也最多吃一个了,后面的现在最少两个)。
第二种是正好前面的都够满足第一个人,他吃爽了后面的都归另一个人。 - 第二题是将一个理发店,有剪头和洗头两种服务,洗头时间a短于剪头时间b,但是得先洗头后剪头,一共有m个客人,理发店只能同时给n个人服务,问服务完这m个客人最少需要花费多长时间。
输入有T组,每组以m n a b这种形式输入数据。
这个题也不难,有点像流水线一样,首先将这m个人分组,每组n个人,需要上取整,然后这n组每组用时b,加上一个最开始洗头的a,就是总时长。
一开始忘了long这码事,一直过15%。。