网易运维笔试程序题求代码分享和思路(附题目)
10选择+两简答+4编程
天真的我最后做编程题,剩余时间55分钟。。。(前面浪费太久时间了)
结果第一题就未能全部AC,只通过了测试用例,应该是没考虑完整边界值,然而越慌越忙。。到后面剩下题都没时间做了,不过看了一下也不是很简单
第一题:
题目描述:牛牛有一个长度为n的数组a,你要找到一个最大的正整数d,使得对于所有i(1<=i<=n),ai+1-ai是d的倍数。
输入:
第一行一个正整数n
第二行n个正整数a1-an
输出:
若d不存在,输出-1,否则输出最大的d
第二题是牛牛的魔塔,求牛牛消灭怪物最少承受的伤害(求大佬程序或思路,C++)
牛牛喜欢玩魔塔,魔塔中有n只怪物,每只怪物有两个属性:破防能力和伤害值,当勇者挑战一只怪物时,若
1,勇者防御力大于其破防能力,勇者不受伤害
2,否则勇者受等同于其伤害值的伤害
初始勇者伤害值为D,勇者可以按任意顺序挑战这n只怪物,每次挑战成功一只后可以获得防御力提升1点的奖励。
牛牛想知道,击败这n只怪兽最少需要承受多少伤害
输入:n,D,n个怪物的破防能力和伤害值(用两个数组输入)
输出:最少伤害值
第三题应该与力扣115题极类似,求输入数字串中子序列为25252的个数
第四题 英雄与怪兽。更新二维数组中的值
n*m的地图上,每个位置值为0或1,0表示怪兽,1表示英雄,对于每个英雄求出离他最近的怪兽的距离是多少,矩阵中每个位置离上下左右的距离都是1,若当前位置是怪兽,输出0即可,题目保证至少存在一只怪兽
输入:第一行输入两个正整数 ,n,m
接下来n行,每行输入m个数,从{0,1}中取值。表示每个位置的属性,其中1<=m,n<=1000
例子:
3 3
101
010
101
输出更新后的矩阵。输出n行,每行m个用空格分隔的数字表示答案。注意行末没有空格
例子
1 0 1
0 1 0
1 0 1