一、题目描述
小华和小薇一起通过玩积木游戏学习数学。
他们有很多积木,每个积木块上都有一个数字,积木块上的数字可能相同。
小华随机拿一些积木挨着排成一排,请小薇找到这排积木中数字相同且所处位置最远的2块积木块,计算他们的距离。
小薇请你帮忙替解决这个问题。
二、输入描述
第一行输入为N,表示小华排成一排的积木总数。
接下来N行每行一个数字,表示小华排成一排的积木上数宇。
三、输出描述
相同数宇的积木的位置最远距离;
如果所有积木数字都不相同,请返回-1。
四、补充说明
0<=积木上的数字<109
1<=积木长度<=105
五、解题思路
- 首先读取输入的积木总数 N;
- 创建一个哈希表 map,用于缓存积木上的数字及其最后出现的位置;
- 初始化最大距离 max 为 -1;
- 针对每个积木,依次进行以下操作:
- 读取积木上的数字 num;
- 如果 map 中已经存在相同的数字 num,则计算当前位置与上次出现位置的距离 distance;
- 将 distance 与 max