- 7
- 0
- 约7千字
- 约 10页
- 2026-04-18 发布于河北
- 举报
ACM大赛试题及详细答案
试题1:数组元素的最小距离
题干
给定一个整数数组arr,找出数组中两个不同元素之间的最小距离(距离定义为两个元素下标之差的绝对值)。若数组长度小于2,输出-1;若存在多个最小距离,输出任意一个即可。
输入:第一行输入一个整数n(1≤n≤100000),表示数组长度;第二行输入n个整数,用空格分隔。
输出:最小距离,若无法计算则输出-1。
示例输入1:
6
131421
示例输出1:1
示例输入2:
3
5810
示例输出2:1
示例输入3:
1
7
示例输出3:-1
详细答案
1.解题思路
核心思路:最小距离一定出现在相邻元素之间(反证法:若存在两个非相邻元素ijk,arr[i]与arr[k]的距离为k-i,而arr[i]与arr[j]的距离为j-i,arr[j]与arr[k]的距离为k-j,两者均小于k-i,因此最小距离不可能是非相邻元素)。因此,只需遍历数组一次,计算每对相邻元素的下标差(固定为1)对应的距离,记录最小值即可。
边界处理:n2时直接输出-1;n≥2时,初始化最小距离为一个较大值(如n,因为最大可能距离为n-1),遍历数组从下标1到n-1,每次计算当前元素与前一个元素的下标差(1),更新最小距离,最终输出最小距离。
2.代码实现(C++)
c++
#includeiostream
#includevector
#
您可能关注的文档
最近下载
- 中南大学2021-2022学年第1学期《线性代数》期末考试试卷(B卷)及标准答案.docx
- 最精典的蜂胶__培训课件.ppt VIP
- (四调)武汉市2026届高三年级四月调研考试数学试卷(含答案及解析).docx
- 四库全书基本概念系列文库:枝江县志.pdf VIP
- 痛风性关节炎汇报ppt课件.pptx VIP
- ABC新版人教版小学五年级下册语文期末综合试卷(3套含答案解析).docx
- 2026Micro800系列PLC产品介绍.pptx VIP
- 2026年高考作文备考之“十大主题预测”专题(审题立意+范文+素材拓展).docx VIP
- YonSuite财务模块标准操作手册(应付管理).pdf VIP
- 建筑刚性防水套管隐蔽工程检查验收记录.doc VIP
原创力文档

文档评论(0)