算法:积木游戏学习数学

一、算法描述
小华和小微一起通过玩积木游戏学习数学。
他们有很多积木,每个积木块上都有一个数字,积木块上的数字可能相同。
小华随机拿一些积木挨着排成一排,请小微找到这排积木中数字相同且所处位置最远的2块积木块,计算他们的距离,
小微请你帮忙替她解决这个问题。输入描述
第一行输入为N,表示小华排成一排的积木总数
接下来N行每行一个数字,表示积木上的数字
输出描述
相同数字的积木的位置最远距离;如果所有积木数字都不相同,请返回-1.示例1 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
5
1
2
3
1
4
输出
3
说明:
共有5个积木,第1个积木和第4个积木数字相同,其距离为3.示例2 输入输出示例仅供调试,后台判题数据一般不包含示例
输入
2
1
2
输出
-1
说明
一共有2个积木,没有积木数字相同,返回-1.备注:
0 <= 积木上的数字 <= 10^9
1 <= 积木长度 <= 10^5
二、算法实现(Java)
public class GetFurthestDistanceOfBlocks {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = Integer.parseInt(scanner.nextLine());int[] nums = new int[n];for (int i = 0; i < n; i++) {nums[i] = Integer.parseInt(scanner.nextLine());}int maxDis = -1;// 可使用map结构,key为每块积木数字,value为每块积木对应nums数组下标Map<Integer, Integer> numMap = new HashMap<>();for (int i = 0; i < n; i++) {if (numMap.containsKey(nums[i])) {// 获取相同数字最大下标距离maxDis = Math.max(maxDis, i - numMap.get(nums[i]));} else {numMap.put(nums[i], i);}}System.out.println(maxDis);}
}
三、运行结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/657602.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第六讲:函数扩展(static,extern)

今天讲讲两个关键字&#xff0c;在此之前&#xff0c;我们先介绍两个概念。 1.作用域&#xff1a;某变量可以使用的范围。 1.1局部变量的作用域&#xff1a;变量所在的局部范围。 1.2全局变量的作用域&#xff1a;整个工程 2.生命周期&#xff1a;变量从申请内存到被回收内…

高中数学:逻辑用语及量词

一、逻辑用语 充分条件与必要条件 充分必要条件的判断&#xff0c;本质就是判断两个集合之间是子集还是真子集的关系 要点&#xff1a;看清楚谁是条件P&#xff0c;谁是结论Q 二、逻辑量词 存在量词与全称量词 命题的真假 三、常见题型 1、已知充分必要性&#xff0c;求…

Vue+OpenLayers7入门到实战:OpenLayers7使用一张静态图片作为地图的基本底图,使用png图片作为地图底图示例

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7 前言 本章介绍如何使用OpenLayers7在地图上使用一张静态图片作为地图的基本底图。 本章主要用处在于如果我们项目没有vmts、vms、xyz等地图服务,只有一张静态图片,也可以作为地图基本图层使用。 二、依赖和使用 "o…

美国DDOS服务器:应对攻击的策略与技术

分布式拒绝服务(DDOS)攻击是一种常见的网络攻击手段&#xff0c;旨在通过大量无用的请求拥塞目标服务器&#xff0c;使其无法正常处理合法请求。美国作为全球互联网技术的领先者&#xff0c;其DDOS服务器在应对这类攻击时具有一系列先进的技术和策略。本文将详细介绍美国DDOS服…

Arrays.asList()方法调用add()或remove()抛出java.lang.UnsupportedOperationException问题

在使用Arrays.asList方法将以,分割的字符串转为list集合时&#xff0c;调用add和remove等方法时会抛出java.lang.UnsupportedOperationException。以下为原因和解决方法。 原因&#xff1a; Arrays.asList()方法返回了一个Arrays类的一个继承了AbstractList的ArrayList内部类…

ElementUI 组件:Layout布局(el-row、el-col)

ElementUI安装与使用指南 Layout布局 点击下载learnelementuispringboot项目源码 效果图 el-row_el-col.vue页面效果图 项目里el-row_el-col.vue代码 <script> export default {name:el-row_el-col 布局 }</script><template><div class"roo…

科微/金航标kinghelm一直在技术上不断创新

宋仕强说&#xff0c;萨科微slkor&#xff08;www.slkoric.com&#xff09;/金航标kinghelm&#xff08;www.kinghelm.net&#xff09;一直在技术上不断创新&#xff0c;并将这些新技术应用于公司的产品中&#xff0c;推出的新产品&#xff0c;这让我们比同行发展快一些&#x…

【环境配置】安装了pytorch但是报错torch.cuda.is_availabel()=Flase

解决思路&#xff1a;import torch正常&#xff0c;说明torch包安装正常&#xff0c;但是不能和gpu正常互动&#xff0c;猜测还是pytroch和cuda的配合问题 1.查看torch包所需的cuda版本 我的torch是2.0.1&#xff0c;在现在是比较新的包&#xff0c;需要12以上的cuda支持&…

04:容器技术概述|镜像与容器|docker配置管理

容器技术概述&#xff5c;镜像与容器&#xff5c;docker配置管理 什么是容器优点缺点 docker与容器跳板机yum源添加docker软件在node节点验证软件包开启路由转发 镜像管理&容器管理如何获取镜像镜像备份与恢复运行容器查看镜像的启动信息镜像管理命令容器管理命令容器内部署…

【小白学unity记录】使用unity播放声音

1. 示例 unity中播放声音涉及到两个组件。AudioSource和AudioClip。AudioSource可以理解为播放器&#xff0c;AudioClip可以理解为音频片段文件。AudioSource可以通过.clip属性切换音频片段。 using UnityEngine;public class PlayerController : MonoBehaviour {private int…

uni-app小程序自定义导航栏

最近在开发一个uni-app小程序&#xff0c;用到了自定义导航栏&#xff0c;在这里记录一下实现过程&#xff1a; page.json 在对应页面路由的style中设置入"navigationStyle": "custom"取消原生导航栏&#xff0c;自定义导航栏 {"path": "…

mysql入门到精通003-基础篇-SQL

1、目录 2、SQL通用语法及分类 2.1 SQL通用语法 2.2 SQL分类 3、SQL DDL数据库操作 3.1 SQL DDL表操作-创建&查询 3.1.1 表操作-查询 3.1.2 表操作-创建 create table tb_user(id int comment 编号,name varchar(50) comment 用户名,age int comment 用户名,gender varch…

【Go】微服务架构下实现etcd服务注册与服务发现

中心网关&#xff1a;gateway 四个微服务&#xff1a;user、message、note、relationship 1 中心网关实现服务发现 1.1 设计EtcdDiscovery类 package entityimport ("context""fmt"clientv3 "go.etcd.io/etcd/client/v3""gonote/gatewa…

重置vCenter的root和administrator@vsphere.local密码

1&#xff1a;首先要重置root密码&#xff0c;登录vCenter安装的ESXI主机&#xff0c;重启vCenter。 2:&#xff1a;重启机器的出现下面界面的时候按e键。 3&#xff1a;按e后出现下面的界面。 4&#xff1a;在最后一行结尾处输入rw init/bin/bash ,之后按ctrl-x或者F10重启。 …

spring boot 使用 Kafka

一、Kafka作为消息队列的好处 高吞吐量&#xff1a;Kafka能够处理大规模的数据流&#xff0c;并支持高吞吐量的消息传输。 持久性&#xff1a;Kafka将消息持久化到磁盘上&#xff0c;保证了消息不会因为系统故障而丢失。 分布式&#xff1a;Kafka是一个分布式系统&#xff0c…

7000字详解Spring Boot项目集成RabbitMQ实战以及坑点分析

本文给大家介绍一下在 Spring Boot 项目中如何集成消息队列 RabbitMQ&#xff0c;包含对 RibbitMQ 的架构介绍、应用场景、坑点解析以及代码实战。 我将使用 waynboot-mall 项目作为代码讲解&#xff0c;项目地址&#xff1a;https://github.com/wayn111/waynboot-mall。本文大…

MATLAB - 仿真单摆的周期性摆动

系列文章目录 前言 本例演示如何使用 Symbolic Math Toolbox™ 模拟单摆的运动。推导摆的运动方程&#xff0c;然后对小角度进行分析求解&#xff0c;对任意角度进行数值求解。 一、步骤 1&#xff1a;推导运动方程 摆是一个遵循微分方程的简单机械系统。摆最初静止在垂直位置…

大数据 - Hadoop系列《四》- MapReduce(分布式计算引擎)的核心思想

上一篇&#xff1a; 大数据 - Hadoop系列《三》- MapReduce&#xff08;分布式计算引擎&#xff09;概述-CSDN博客 目录 13.1 MapReduce实例进程 13.2 阶段组成 13.4 概述 13.4.1 &#x1f959;Map阶段&#xff08;映射&#xff09; 13.4.2 &#x1f959;Reduce阶段执行过…

STM32F407移植OpenHarmony笔记3

接上一篇&#xff0c;搭建完环境&#xff0c;找个DEMO能跑&#xff0c;现在我准备尝试从0开始搬砖。 首先把/device和/vendor之前的代码全删除&#xff0c;这个时候用hb set命令看不到任何项目了。 /device目录是硬件设备目录&#xff0c;包括soc芯片厂商和board板级支持代码…

Linux 系统相关的命令

参考资料 Linux之chmod使用【linux】chmod命令详细用法 目录 一. 系统用户相关1.1 查看当前访问的主机和用户1.2 切换用户1.2.1 设置root用户密码1.2.2 普通用户和root用户切换 1.4 系统状态1.4.1 vmstat 查看当前系统的状态1.4.2 history 查看系统中输入过的命令 二. 系统文件…