【华为机试真题 JAVA】积木最远距离-100
题目描述
小华和小薇一起通过玩积木游戏学习数学。 他们有很多积木,每个积木块上都有一个数字,积木块上的数字可能相同。 小华随机拿一些积木挨着排成一排,请小薇找到这排积木中数字相同且所处位置最远的2块积木块,计算他们的距离,小薇请你帮忙替她解决这个问题。
输入描述
第一行输入为N,表示小华排成一排的积木总数。 接下来N行每行一个数字,表示小华排成一排的积木上数字。
输出描述
相同数字的积木的位置最远距离;如果所有积木数字都不相同,请返回-1。
测试用例
示例1
输入
5 1 2 3 1 4
输出
3
示例2
输入
2 1 2
输出
-1
解题思路
这段代码是一个求积木最远距离的问题。具体实现思路如下:
- 从标准输入中读取一个整数,代表积木的数量n。
- 创建一个哈希表dataMap,用于记录每个积木的出现位置,其中键为积木的数值,值为积木数值对应的位置构成的列表。