网页设计与网站建设试题,建筑人才网一砖一瓦,购物网站哪个东西便宜质量好,泰安网站建设定制公司题目描述
小华和小薇一起通过玩积木游戏学习数学。
他们有很多积木#xff0c;每个积木块上都有一个数字#xff0c;积木块上的数字可能相同。
小华随机拿一些积木挨着排成一排#xff0c;请小薇找到这排积木中数字相同目所处位置最远的2块积木块#xff0c;计算他们的…题目描述
小华和小薇一起通过玩积木游戏学习数学。
他们有很多积木每个积木块上都有一个数字积木块上的数字可能相同。
小华随机拿一些积木挨着排成一排请小薇找到这排积木中数字相同目所处位置最远的2块积木块计算他们的距离。
小薇请你帮忙替她解决这个问题。
输入
第一行输入为N表示小华排成一排的积大总数。
接下来 N 行每行一个数字表示小花排成一排的积大上数字。
输出
相同数字的积木的位置最远距离;
如果所有积木数字都不相同请返回 -1
样例输入
5
1
2
3
1
4
样例输出
3
思路 这属于一个简单题目了我们只要边输入边判断改变即可。 首先每种数字第一次出现的时机是需要记录下来的因为我们是求间隔最长的两个相同元素的间隔长度。 其次就是遇见重复元素进行判断更改最大值状态即可。
代码
package Date3Point21;import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;/*** 小华和小薇一起通过玩积木游戏学习数学。* 他们有很多积木每个积木块上都有一个数字积木块上的数字可能相同。* 小华随机拿一些积木挨着排成一排请小薇找到这排积木中数字相同目所处位置最远的2块积木块计算他们的距离。* 小薇请你帮忙替她解决这个问题。*/
public class MainB {public static void main(String[] args) {Scanner scannernew Scanner(System.in);int n scanner.nextInt();MapInteger,Integer mapnew HashMap();int count1;int maxLen0;while (countn){int num scanner.nextInt();if(!map.containsKey(num)){map.put(num,count);}else{Integer integer map.get(num);maxLenmaxLencount-integer.intValue()?count-integer.intValue():maxLen;}count;}if(maxLen0){System.out.println(-1);}else{System.out.println(maxLen);}}
}