笔试填坑:网易2021春招【写给自己看的】

刚刚结束了网易2021年的实习生春招,然后被一一道子网划分的题难住了
讲道理这道题属于基础题,属于计算机网络必过的题目,但是都只是想起一点点而已
现在趁着还有点记忆,写下来先

选择题(2*10)

有一个特殊的队列,可以从两头入队,并且可以在一头出队,入队和出队不可以同时进行,我们将1、2、3、4、5入队,不可能的出队列的顺序是?
1、2、3、4、5
5、4、3、1、2
5、1、3、2、4
还有两个忘记了

这道题我是用一个个去凑的,我没想出有什么更好的办法

有一个ip地址为 212.212.51.0/24 ,子网掩码为
255.255.255.252,求划分子网的个数以及有效地址数。

首先我们可以知道这个网络地址是C类地址:1111 1111.1111 1111.1111 1111.0000 0000
所以多出来的252(1111 1100)就是子网号

所以子网的个数为2^6=64
每个子网有两个有效地址数:2^2-2=2(全0和全1不分配)

我们可以用13的小矩形横着或者竖着去覆盖更大的矩形。覆盖3n的矩形有多少种方法,n>3。找出通项。

这题是找规律的题目,有给出几个选项,但是都忘得七七八八了,和牛客网上的矩形覆盖差不多的,他的更简单一点,他有给出通项给我们做选择
笔试填坑:网易2021春招【写给自己看的】

编程题(20*4)

一个有n个数字的数组a,请找出一个最大正整数d,使得a(i+1)-ai=d*k(k>=1)
输入两行:第一行为n、第二行为 数组
输出:输出数d,如果不存在,那么输出-1

也就是一个数组中,前一个数字减去后一个数字,所得到的数字中,找最大公约数

勇士闯关,怪兽有两个属性,破防属性值和伤害值,如果勇士的防御值大于怪兽的破防值,那么勇士不受伤害,否则收到的伤害为怪兽的伤害值。如果挑战成功,勇士的防御值+1。勇士可以随机选择一个怪兽进行挑战,问怎么挑战收到的伤害值最小
输入数据:第一行 n(怪兽的数量)m(勇士的初始防御值)、第二行:怪兽的破防值、第三行:怪兽的伤害值
输出数据:收到的最小伤害值
示例数据:
3 50
100 50 51
1000 1000 1000
输出数据:1000

讲道理,这道题我没看懂,是因为他有给出示例数据
他说挑战第一个怪兽,受到的伤害为1000,挑战第二个怪兽护甲值大于破防值,不受伤害,挑战第三个怪兽,不受伤害。
真心没看懂这示例数据

一个城市中有n个人,里面举行了m场家庭聚会,假设刚开始只有一个感染者,且参加聚会的人全部都会被感染,感染者又会去感染其他人。求最后的感染者有多少人
输入数据:
第一行:n(城市中的人数) m(家庭聚会的次数) f(初始感染者的编号,从0开始)
接下来的几行是m场聚会次数,第一个数字是参加的人数num,加下来的num个参加聚会的编号
示例数据:
10 2 0
2 0 1
3 0 1 2
输出数据:4

这题其实挺简单的,将感染者放进一个集合里面,如果聚会里面有这些人的话,全部被感染,加进集合里面,最后输出集合的个数

超人打怪兽,一个n*m的矩阵,里面有0(代表怪兽) 和1(代表超人),输出一个矩阵,矩阵里面的数据是超人离怪兽最近的距离,加入方格里面是怪兽的话,输出0
示例数据:
3 3
101
010
101
输出数据:
101
010
101

这题好像也挺简单的,但是没写出来。。。。

问答题(10*2)

函数式编程和面向对象编程有什么区别,java8为什么一反常态的引入函数式编程?

单例模式的双重检查锁是为什么,能解决什么问题?(大概是这样吧,答不上来)