华为OD机试题解:积木最远距离问题(C++题解)
在华为OD机试中,常常会出现数组或字符串中的距离计算问题,这些问题往往涉及到高效的索引查找和状态更新。本篇文章将介绍一道关于积木最远距离的题目,考察的是通过哈希表进行索引管理,寻找数组中相同元素的最大距离。本文将详细介绍题目的解题思路,并提供高效的C++代码实现,帮助读者掌握这类题目的解决技巧。
题目描述
小华和小薇玩积木游戏,每个积木块上都有一个数字,数字可能会重复。小薇需要找到这排积木中数字相同且位置最远的两块积木,并计算它们的距离。如果没有相同数字的积木,则返回 -1
。
输入描述
- 第一行输入为整数
N
,表示小华排成一排的积木总数。 - 接下来
N
行,每行一个数字,表示积木上标注的数字。
输出描述
输出一个整数,表示相同数字的积木之间的最大距离。如果没有相同数字的积木,输出 -1
。