华为OD机试真题 JavaScript 实现【相同数字的积木游戏1】【2023Q2 100分】

news2025/1/30 16:10:57

在这里插入图片描述

一、题目描述

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

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

小华随机拿一些积木挨着排成一排,请小薇找到这排积木中数字相同且所处位置最远的2块积木块,计算他们的距离。

小薇请你帮忙替解决这个问题。

二、输入描述

第一行输入为N,表示小华排成一排的积木总数。

接下来N行每行一个数字,表示小华排成一排的积木上数宇。

三、输出描述

相同数宇的积木的位置最远距离;

如果所有积木数字都不相同,请返回-1。

四、补充说明

0<=积木上的数字<109

1<=积木长度<=105

五、解题思路

  1. 首先读取输入的积木总数 N;
  2. 创建一个哈希表 map,用于缓存积木上的数字及其最后出现的位置;
  3. 初始化最大距离 max 为 -1;
  4. 针对每个积木,依次进行以下操作:
    • 读取积木上的数字 num;
    • 如果 map 中已经存在相同的数字 num,则计算当前位置与上次出现位置的距离 distance;
    • 将 distance 与 max 比较,取较大值作为新的 max;
    • 如果 map 中不存在当前数字 num,则将其加入 map,键为数字,值为当前位置;
  5. 输出最大距离 max,如果所有积木数字都不相同,则输出 -1;

六、JavaScript算法源码

function findFarthestDistance(N, input) {
    const numbers = input.split(" ")
    const map = new Map();
    let max = -1;

    for (let i = 0; i < N; i++) {
        const num = numbers[i];
        if (map.has(num)) {
            const distance = i - map.get(num);
            max = Math.max(distance, max);
        } else {
            map.set(num, i);
        }
    }

    return max;
}

七、效果展示

1、输入

5
1
2
3
2
1

2、输出

4

3、说明

很明显,距离最远的相同的数是1。

在这里插入图片描述


🏆下一篇:华为OD机试真题 JavaScript 实现【相对开音节】【2022Q4 100分】,附详细解题思路

🏆本文收录于,华为OD机试(JavaScript)真题(A卷+B卷)

每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

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

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

相关文章

嵌入式面试求职分享(经典)

前言 本文会分享一些嵌入式软件岗位的秋招事宜&#xff0c;对所有流程都会有一个描述&#xff0c;事无巨细&#xff0c;希望可以帮到各位读者。 下面将自己的学习和秋招经验分享给大家&#xff0c;如有错误&#xff0c;欢迎大家指出&#xff0c;希望能够给迷茫的人带来帮助。 …

NRF52832的DFU

开发环境&#xff1a; Winsodw&#xff1a;10 nRF5_SDK&#xff1a;17.1.0 1 工具安装 1.1 gcc-arm-none-eabi Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer 下载“gcc-arm-none-eabi-10.3-2021.10-win32.exe”&#xff0c;接提示安装。注意安装完…

基于GPT的聊天机器人(未完待续)

入门小菜鸟&#xff0c;希望像做笔记记录自己学的东西&#xff0c;也希望能帮助到同样入门的人&#xff0c;更希望大佬们帮忙纠错啦~侵权立删。 目录 一、简单介绍与参考鸣谢 二、数据集介绍 三、数据预处理 1、重复标点符号表达 2、英文标点符号变为中文标点符号 3、繁…

1.Apollo部署-linux

一.官方文档 https://www.apolloconfig.com/#/zh/deployment/quick-start-docker 二.环境准备 1.MySql 5.6.51.单独服务器192.168.2.13 https://downloads.mysql.com/archives/installer/ 2.JDK 1.8.X https://www.oracle.com/java/technologies/downloads/ 三.Apollo部署…

BI-SQL丨日志清理

日志清理 在使用SQL Server的过程中&#xff0c;随着时间的变化&#xff0c;后台日志文件的体量也是在不断增加的。这样会使得数据库的性能下降&#xff0c;并且占用大量的磁盘空间。 而在我们日常运维过程中&#xff0c;偶尔会遇到数据库执行JOB的时候&#xff0c;报内存不足…

Qt6之vc调用Qt生成无ui的dll

Qt可以调用vc生成的dll&#xff0c;反之qt也可以提供生成的dll给其它语言来调用&#xff0c;比如VC、rust等。 一、qt生成dll 在Qt creator加持下已经很容易的生成DLL&#xff0c;如下&#xff1a; 1、新建&#xff0c;库&#xff0c;C Library&#xff1b; 2、类型&#xff…

d3dx9_43.dll是什么文件、d3dx9_43.dll缺失的解决方法

d3dx9_43.dll电脑文件中的dll文件&#xff0c;即动态链接库文件&#xff0c;若计算机中丢失了某个dll文件&#xff0c;就会导致某些软件和游戏等程序无法正常启动运行&#xff0c;并且导致电脑系统弹窗报错&#xff0c;其安装方法&#xff1a;1、打开浏览器输入“dll修复文件.s…

SpringCloud第三篇:GateWay服务网关

一、为什么需要服务网关&#xff1a; 1、什么是服务网关 传统的单体架构中只需要开放一个服务给客户端调用&#xff0c;但是微服务架构中是将一个系统拆分成多个微服务&#xff0c;如果没有网关&#xff0c;客户端只能在本地记录每个微服务的调用地址&#xff0c;当需要调用的…

spring 只读事务 设置异常回滚事务

Transactional(readOnly true) 将当前事务设置为只读事务&#xff0c;在该事务执行过程中只允许select语句执行&#xff0c;delete insert update均不可执行。 该特性的作用是&#xff1a;启动spring的优化策略。提高select语句执行效率。 Transactional(rollbackFor Runtime…

php通过cURL爬取数据(3):CURLINFO_HTTP_CODE返回0的排查和解决方案

CURLINFO_HTTP_CODE返回0的排查和解决方案 一、curl本地服务器需要DNS解析域名二、如何排查错误原因三、无法解析 DNS的程序升级方案四、宝塔配置DNS的操作方法1.etc/resolv.conf2.通过GUI界面 一、curl本地服务器需要DNS解析域名 在使用 curl 命令发送请求到域名地址&#xf…

【LeetCode】304. 二维区域和检索 - 矩阵不可变

304. 二维区域和检索 - 矩阵不可变&#xff08;中等&#xff09; 方法一&#xff1a;多个一维前缀和 思路 这道题是303. 区域和检索 - 数组不可变的进阶&#xff0c;第 303 题是在一维数组中做区域和检索&#xff0c;这道题是在二维矩阵中做区域和检索。第303 题中&#xff0…

【23种设计模式】策略模式(State Pattern)

个人主页&#xff1a;金鳞踏雨 个人简介&#xff1a;大家好&#xff0c;我是金鳞&#xff0c;一个初出茅庐的Java小白 目前状况&#xff1a;22届普通本科毕业生&#xff0c;几经波折了&#xff0c;现在任职于一家国内大型知名日化公司&#xff0c;从事Java开发工作 我的博客&am…

使用 Python Selenium 提取动态生成下拉选项

在进行网络数据采集和数据分析时&#xff0c;处理动态生成的下拉菜单是一个常见的挑战。Selenium是一个强大的Python库&#xff0c;可以让你自动化浏览器操作&#xff0c;比如从动态生成的下拉菜单中选择选项。这是一个常见的网页爬虫和数据收集者面临的挑战&#xff0c;但是Se…

C#可视化 家用轿车信息查询系统(具体做法及全部代码)

目录 题目&#xff1a; 效果图&#xff1a; 数据库&#xff1a; 做法&#xff1a; combobox值更新 查询按钮功能&#xff08;非空验证&#xff0c;查询数据&#xff09; datagirdview设置 全部代码&#xff1a; DBHelper类 From1主窗体代码 题目&#xff1a; 效果图&#…

Qt Button实现按钮长按事件

Qt Button实现按钮长按事件 背景查资料第3种widget.cpp源文件 最好方法小结 背景 最近项目遇到一个需求&#xff0c;通过鼠标按钮长按一直发数据&#xff0c;鼠标松开立即离开。 想了一会儿大概有了几种思路&#xff08;仅仅是思路&#xff0c;不一样可以实现&#xff09; 1.重…

OBS Studio 29.1.2 正式发布

导读OBS Studio 是一款免费且开源的用于视频录制以及直播串流的软件&#xff0c;提供实时高性能的视频 / 音频捕捉与混合&#xff0c;以及无限的场景模式帮助用户通过自定义实现无缝转换。 OBS Studio 29.1.2 现已发布&#xff0c;具体更新内容包括&#xff1a; 在 Windows 设…

[7]PCB设计实验|认识常用元器件|电容器|19:00~19:30

目录 一、电容器的识别 电容的应用 1. 电容有通交流阻隔直流电的作用 2. 有滤波、耦合、旁路作用等 3. 有些电容是有极性&#xff0c;有些是没有极性 二、常见电容器 1. 贴片电容 a、材质瓷片 b、材质钽介质 c、材质电解质 2. 手插电容 a、瓷片电容 b、聚脂电容 …

【计算机组成与体系结构Ⅰ】课程设计——基于Logisim的模型计算机设计

基于Logisim的模型计算机设计 一、实验目的 基于Logisim软件&#xff0c;根据一个模型指令系统&#xff0c;在逐步学习和了解计算机组成各部分逻辑组成和各部分互联的基础上&#xff0c;深入理解课程中的知识点&#xff0c;利用此软件设计并实现一个模拟的8位模型计算机原型。…

NumPy库的学习

本文主要记录的是笔者在B站自学Numpy库的学习笔记。 引入numpy库 import numpy as np矩阵的创建 创建一个二行三列的矩阵。 array np.array([[1,2,3],[2,3,4]])查看array的行数、形状、元素数量 print("number of dim:",array.ndim) print("shape:"…

Sui x KuCoin Labs夏季黑客松|6月8日Suiet Workshop

由Sui和KuCoin Labs联合主办的夏季黑客松正如火如荼的报名中。了解黑客松详情&#xff1a;Sui与KuCoin Labs联合推出夏季黑客松&#xff0c;奖池高达28.5万美金&#xff01; &#x1f449; 黑客松官方网站&#xff1a;Sui x KuCoin Labs Summer Hackathon 活动期间&#xff0…