华为OD机试 - 实力差距最小总和(Java 2024 E卷 200分)

在这里插入图片描述

华为OD机试 2024E卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(E卷+D卷+A卷+B卷+C卷)》。

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

游戏里面,队伍通过匹配实力相近的对手进行对战。

但是如果匹配的队伍实力相差太大,对于双方游戏体验都不会太好。

给定n个队伍的实力值,对其进行两两实力匹配,两支队伍实例差距在允许的最大差距d内,则可以匹配。

要求在匹配队伍最多的情况下,匹配出的各组实力差距的总和最小。

二、输入描述

第一行,n,d。队伍个数n。允许的最大实力差距d。(2<= n <=50, 0<= d <=100)。

第二行,n个队伍的实力值,空格分割。(0<=各队伍实力值<=100)。

三、输出描述

匹配后,各组对战的实力差值的总和。若没有队伍可以匹配,则输出-1。

四、解题思路

  1. 读取输入的队伍个数n和允许的最大实力差距d。
  2. 读取输入的队伍实力值数组scores,并对其进行排序。
  3. 初始化一个布尔变量flag为false,表示是否有两个队伍的实力差小于最大实力差距d。
  4. 初始化一个长度为n的整数数组arr,用于记录每个位置的实力差值总和。
    • 将arr[0]设为0,表示只有一个队伍,无法匹配。
    • 检查第一个队伍和第二个队伍的实力差值,如果小于等于最大实力差距d,则将arr[1]设为实力差值,同时将flag设为true。
    • 对于后续的队伍i(i从2到n-1),检查队伍i和队伍i-1的实力差值,如果小于等于最大实力差距d,则将arr[i]设为arr[i-2]加上实力差值,表示在i和i-1之间的队伍可以匹配,同时将flag设为true。 否则,将arr[i]设为arr[i-1],表示无法匹配。
  5. 如果flag为true,表示存在可以匹配的队伍,输出arr[n-1],即最后一个位置的实力差值总和。
  6. 否则,flag为false,表示无法匹配任意两支队伍,输出-1表示没有队伍可以匹配。

五、Java算法源码

public static void main(String[] args) {Scanner sc = new Scanner(System.in);int[] nums = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();// 队伍个数nint n = nums[0];// 允许的最大实力差距dint d = nums[1];// n个队伍的实力值int[] scores = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();Arrays.sort(scores);// 是否有两个队伍的实力差小于最大实力差距d,如果没有返回-1boolean flag = false;// 前后队伍的实力差int[] arr = new int[n];arr[0] = 0;// 允许的最大实力差距dif (scores[1] - scores[0] <= d) {arr[1] = scores[1] - scores[0];flag = true;} else {arr[1] = 0;}for (int i = 2; i < n; i++) {if (scores[i] - scores[i - 1] <= d) {flag = true;arr[i] = arr[i - 2] + scores[i] - scores[i - 1];} elsearr[i] = arr[i - 1];}if (flag) {System.out.print(arr[n - 1]);} else {System.out.print(-1);}
}

六、效果展示

1、输入

6 20
19 57 42 66 82 32

2、输出

19

3、说明

  1. 先将n个队伍的实力值排个序,19 32 42 57 66 82
  2. 19与32配对,实力差距13;
  3. 42与57配对。实力差距15;
  4. 66和82配对,实力差距16;
  5. 13 + 15 + 16 = 44

🏆下一篇:华为OD机试 - 简易内存池 - 逻辑分析(Java 2024 E卷 200分)

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

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

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

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

相关文章

SpringBoot 集成 Redis

一&#xff1a;SpringBoot 集成 Redis ①Redis是一个 NoSQL&#xff08;not only&#xff09;数据库&#xff0c; 常作用缓存 Cache 使用。 ②Redis是一个中间件、是一个独立的服务器&#xff1b;常用的数据类型&#xff1a; string , hash ,set ,zset , list ③通过Redis客…

【2024年持续更新】国内ChatGPT-4中文镜像网站整理

目录 一、什么是ChatGPT镜像站&#xff1f; 二、GPT工具跟国内AI大模型整理 三、国内大模型与ChatGPT的区别 四、ChatGPT能做什么&#xff1f; 五、ChatGPT提示词教学 一、什么是ChatGPT镜像站&#xff1f; 镜像网站是指将原始网站的内容复制并放置在另一服务器上的网站。…

在 Hugging Face MTEB 排行榜上比较 ELSER 的检索相关性

作者&#xff1a;来自 Elastic Aris Papadopoulos 及 Serena Chou 本博客对 ELSER 在 Hugging Face MTEB 排行榜上的检索相关性进行了比较。 在 Hugging Face MTEB 排行榜上比较 ELSER 的检索相关性 ELSER&#xff08;Elastic Learned Sparse EncodeR&#xff09;是 Elastic …

Linux TFTP服务器搭建

话得多说 先水一波字 TFTP&#xff08;Trivial File Transfer Protocol&#xff09;是一种简单的文件传输协议。它用于在计算机网络中传输文件&#xff0c;特别适用于在网络设备&#xff08;如开发板和Linux系统下&#xff09;代码调试等操作。TFTP使用UDP&#xff08;User Da…

多模态大语言模型(MLLM)-Blip2深度解读

前言 Blip2是一个多模态大语言模型&#xff0c;因其提出时间较早&#xff08;2023年&#xff09;&#xff0c;且效果较好&#xff0c;很快成为一个标杆性工作。Blip2中提出的Q-former也成为衔接多模态和文本的重要桥梁。 Blip2发表时间是2023年&#xff0c;现在引用已经3288了…

计算机毕业设计 自习室座位预约系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

【2024最新】基于springboot+vue的家具销售电商平台lw+ppt

作者&#xff1a;计算机搬砖家 开发技术&#xff1a;SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;Java精选实战项…

Android OpenGLES2.0开发(四):矩阵变换和相机投影

事物的本质是事物本身所固有的、深藏于‌现象背后并决定或支配现象的方面‌。 还记得我们上一篇绘制的三角形吗&#xff0c;我们确实能够顺利用OpenGL ES绘制出图形了&#xff0c;这是一个好的开始&#xff0c;但这还远远不够。我们定义的坐标是正三角形&#xff0c;但是绘制出…

Python网络爬虫从入门到实战

目录 引言 一、网络爬虫的概念 二、 网络爬虫的基本工作流程 &#xff08;一&#xff09;过程&#xff1a; &#xff08;二&#xff09;安装requests模块和beautifulsoup4模块 &#xff08;三&#xff09;requests库的使用 1、requests库的基本介绍 2、导入requests库的…

使用tcpkill断开异常tcp连接

在linux系统中&#xff0c;遇到TCP链接迟迟不能释放的情况&#xff0c;类似FIN_WAIT1、FIN_WAIT2的状态&#xff0c;释放时间不确定&#xff0c;而且对应的程序已经关闭&#xff0c;相应的端口也不再监听&#xff0c;无法通过杀进程来解决&#xff0c;这种情况下&#xff0c;为…

大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

HarmonyOS NEXT - 表单录入组件封装(TextInput)

demo 地址: https://github.com/iotjin/JhHarmonyDemo 组件对应代码实现地址 代码不定时更新&#xff0c;请前往github查看最新代码 HarmonyOS NEXT - 表单录入组件封装&#xff08;TextInput&#xff09; 序JhFormInputCellJhFormSelectCellJhLoginTextField 序 鸿蒙next中有两…

PMP--冲刺题--解题--81-90

文章目录 12.采购管理--1.规划采购管理--在自制或外购分析中&#xff0c;可以使用回收期、投资回报率&#xff08;ROI&#xff09;内部报酬率&#xff08;IRR&#xff09;、现金流贴现、净现值&#xff08;NPV&#xff09;、收益成本净现值&#xff08;BCA&#xff09;或其他分…

如何使用ssm实现公司进销存管理系统设计与开发

TOC ssm792公司进销存管理系统设计与开发jsp 第1章 绪论 1.1选题动因 当前的网络技术&#xff0c;软件技术等都具备成熟的理论基础&#xff0c;市场上也出现各种技术开发的软件&#xff0c;这些软件都被用于各个领域&#xff0c;包括生活和工作的领域。随着电脑和笔记本的广…

python画图|曲线动态输出基础教程

在前述学习过程中&#xff0c;已经掌握基本的曲线图像画法&#xff0c;并尝试探索过3D动画基础教程。 相关文章可以通过下述链接直达&#xff1a; python画三角函数图|小白入门级教程_正余弦函数画图python-CSDN博客 python动画教程|Animations using Matplotlib-官网教程程…

电玩体验馆计时软件可以倒计时的软件试用版下载 佳易王ps5计时器管理系统使用教程

一、前言 【软件试用版下载可以点击本文章最下方官网卡片】 电玩体验馆计时软件可以倒计时的软件试用版下载 佳易王ps5计时器管理系统使用教程 1、软件能够记录玩家开始的时间和节数时间&#xff0c;从而计算出时长。 2、根据预设的收费标准&#xff0c;软件可以自动计算出…

各省份自然灾害损失造成的直接经济损失数据(2009-2022年)

自然灾害是自然演变过程中不可避免的现象&#xff0c;它们对人类社会构成了巨大的威胁。中国作为一个自然灾害频发的国家&#xff0c;面临着种类繁多的灾害挑战&#xff0c;包括气象灾害、地质灾害、海洋灾害、生物灾害和森林草原火灾等。 数据来源&#xff1a;《中国环境统计…

【GESP】C++一级练习BCQM3030,保留12位小数

浮点数数位保留练习&#xff0c;%m.nf知识点&#xff0c;已在BCQM3027中详细介绍。 题解详见&#xff1a;https://www.coderli.com/gesp-1-bcqm3030/ 【GESP】C一级练习BCQM3030&#xff0c;保留12位小数 | OneCoder浮点数数位保留练习&#xff0c;%m.nf知识点&#xff0c;已在…

培训机构客户管理系统的设计+ssm论文源码调试讲解

2 系统开发环境 2.1微信开发者工具 微信开发者工具现在已经被小程序开发团队开发运行&#xff0c;目前微信开发者工具任然在不断的完善中&#xff0c;在开发小程序时经常要不断的更新。可以使用微信扫码登陆开发者工具&#xff0c;开发者工具将使用这个微信帐号的信息进行小程…

Android车载音频系统概览

目录 1. 什么是Android车载音频系统 2. Android 声音和声音流 2.1 Android 声音 2.2 外部声音流 2.3 输出设备 章节说明:本节内容是Android车载音频系统简介。 1. 什么是Android车载音频系统 官方英文名称是:Automotive audio systems 由于汽车上无论是音频设备的数量还…