刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

阅读以下说明和流程图,填补流程图和问题中的空缺(1)~(5),将解答填入答题纸的对应栏内。

【说明】

设整型数组A[1:N]每个元素的值都是1到N之间的正整数。一般来说,其中会有一些元素的值是重复的,也有些数未出现在数组中。下面流程图的功能是查缺查重,即找出A[1:N]中所有缺的或重复的整数,并计算其出现的次数(出现次数为0时表示缺)。流程图中采用的算法思想是将数组A的下标与值看作是整数集[1:N]加上的一个映射,并用数组C[1:N]记录各整数出现的次数,需输出所有缺少的或重复的数及其出现的次数。

【流程图】

【问题】

  如果数组A[1:5]的元素分别为{3,2,5,5,1},则算法流程结束后输出结果为:

  (5) 输出格式为:缺少或重复的元素,次数(0表示缺少)

使用微信搜索喵呜刷题,轻松应对考试!

答案:

(1)A[i]

(2)C[k]+1

(3)1

(4)k

和C[k]

(5)4,{1,1,1,0,2}

解析:

(1) 根据说明,算法需要遍历数组A的每个元素,因此空白处应填写表示数组元素的值,即 A[i]。

(2) 在遍历过程中,对于数组A中的每个元素A[i],需要在数组C中对应的元素C[A[i]]上计数。因此空白处应填写增加计数的表达式,即 C[k]+1,其中k代表A[i]的值。

(3) 在初始化数组C的环节,需要将所有元素初始化为0,表示对应的整数在数组A中未出现。因此空白处填写0,即初始值为1。

(4) 在计数完成后,需要遍历数组C,找出不等于初始值的元素,这些元素对应的值即为在数组A中出现过但次数不为初始值的整数。因此空白处应填写变量k和C[k],表示当前遍历到的数组C中的元素和其对应的值。此时还需要记录这些元素的原始下标,用于输出缺少或重复的元素的位置信息。由于数组下标从1开始,因此这里应该填写当前元素的下标即可。由于原始下标已经丢失,无法直接获取,因此需要通过其他方式记录或计算。此处暂不涉及具体实现细节。

(5) 根据题目给出的数组A[1:5]的元素为{3,2,5,5,1},经过算法处理后,得到缺少的元素为无(因为数组中的元素都是完整的),重复的元素为5(出现了两次)。因此输出格式为缺少或重复的元素及其出现次数,即{无, 5, 2}。注意此处应为数字本身和出现次数的组合,而非下标和出现次数的组合。

创作类型:
原创

本文链接:阅读以下说明和流程图,填补流程图和问题中的空缺(1)~(5),将解答填入答题纸的对应栏内。 【说明】

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share