当前位置: 首页 > news >正文

编程题:相同数字的积木游戏(Java)

题目描述

小华和小薇一起通过玩积木游戏学习数学。 

他们有很多积木,每个积木块上都有一个数字,积木块上的数字可能相同。

小华随机拿一些积木挨着排成一排,请小薇找到这排积木中数字相同目所处位置最远的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 scanner=new Scanner(System.in);int n = scanner.nextInt();Map<Integer,Integer>  map=new HashMap<>();int count=1;int maxLen=0;while (count<=n){int num= scanner.nextInt();if(!map.containsKey(num)){map.put(num,count);}else{Integer integer = map.get(num);maxLen=maxLen<count-integer.intValue()?count-integer.intValue():maxLen;}count++;}if(maxLen==0){System.out.println(-1);}else{System.out.println(maxLen);}}
}

相关文章:

  • 暴力快速入门强化学习
  • 2024年阿里云服务器地域和可用区所在地区城市分布表
  • MT2191 整数大小比较(高精度)
  • React—— props校验(非typescript校验类型)
  • 目标检测——PP-YOLO算法解读
  • 33-Java服务定位器模式 (Service Locator Pattern)
  • js中的new Map的用法
  • [ESP32] 编码旋钮驱动
  • 备考ICA----Istio实验7---故障注入 Fault Injection 实验
  • 一种基于约化因子上三角矩阵求逆方法与MATLAB仿真
  • 【数据结构】栈与队列
  • transfomer知识点梳理
  • 工业相机采图方式、图像格式(BYTE、HObject和Mat)转换
  • 队列的实现(C语言链表实现队列)
  • JS+CSS3点击粒子烟花动画js特效
  • 时间复杂度分析经典问题——最大子序列和
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • es6--symbol
  • JavaScript异步流程控制的前世今生
  • js面向对象
  • spring security oauth2 password授权模式
  • ubuntu 下nginx安装 并支持https协议
  • XForms - 更强大的Form
  • 排序算法学习笔记
  • 如何进阶一名有竞争力的程序员?
  • 深度学习在携程攻略社区的应用
  • 项目实战-Api的解决方案
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • Python 之网络式编程
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • ( 10 )MySQL中的外键
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (第二周)效能测试
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (算法)Travel Information Center
  • (转)原始图像数据和PDF中的图像数据
  • (转载)Google Chrome调试JS
  • .cfg\.dat\.mak(持续补充)
  • .libPaths()设置包加载目录
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .Net core 6.0 升8.0
  • .NET Framework 和 .NET Core 在默认情况下垃圾回收(GC)机制的不同(局部变量部分)
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET中winform传递参数至Url并获得返回值或文件
  • 。。。。。
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • [ C++ ] STL_list 使用及其模拟实现
  • [ IOS ] iOS-控制器View的创建和生命周期
  • [20171106]配置客户端连接注意.txt
  • [C++]模板与STL简介