首页 > 记录前些天笔试的一个题
头像
Peng_Dong
发布于 2021-09-10 16:34
+ 关注

记录前些天笔试的一个题

前些天参加了华为OD(外企德科啥的)的在线笔试,其中最后一题这几天一直在纠结,似乎题干描述的有问题,想再看一次题和测试用例,不知道在哪可以再看。
我把记忆中的题干内容大概写一下:
1. 检测错误数据:给定一组测量数据,根据以下逻辑判定数据是否错误:
        错误数据判定逻辑:当前数据小于0 或者 当前数据小于上一个数据 或者 当前数据减去上一个数据的值大于等于10,判定为错误数据。伪代码如下:
array[i] < 0
array[i] < array[i - 1]
array[i] - array[i - 1] >= 10
2. 故障判定:
        给定一个检测是否发生故障的逻辑:在连续的 M 个数据中有 T 个错误时,判定为发生故障,否则无故障。
        再给定一个检测故障是否恢复的逻辑:在连续的 P 个数据中未发现错误时,判定为故障恢复,否则未恢复。

3. 错误数据处理方案:
        若未检测到故障,该错误数据由前一个正常数据替换;若前面无正常数据,移除该数据
        若检测到故障,丢弃从故障发生到故障恢复的数据;若故障一直未恢复,丢弃故障发生后的所有数据

4. 输入:
        先输入三个故障判定参数:M,T,P   再换行输入一组数据,如:
3,2,3
-1,3,3,14,6 
题中给出的测试用例已记不太清楚,这个测试用例是自己编的
有一个点记得特别清楚:由于 14 这个值是错误的,它必须得替换为前一个的值 3 ,替换后再对它后一个数据 6 进行判断,因此 6 为正常数据

5. 输出:
输出最后只有正常值的数组长度
        

全部评论

(1) 回帖
加载中...
话题 回帖