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

华为OD-D卷游戏分组

部门准备举办一场王者荣耀表演赛,有10名游戏爱好者参与,分为两队,每队5人。每位参与者都有一个评分,代表着他的游戏水平。为了表演赛尽可能精彩,我们需要把10名参赛者分为实力尽量相近的两队。一队的实力可以表示为这一队5名队员的评分总和。

现在给你10名参与者的游戏水平评分,请你根据上述要求分队,最后输出这两组的实力差绝对值。

例:10名参赛者的评分分别为5 1 8 3 4 6 7 10 9 2,分组为(1 3 5 8 10)(2 4  6 7 9),两组实力差最小,差值为1。有多种分法,但实力差的绝对值最小为1。

输入描述:

10个整数,表示10名参与者的游戏水平评分。范围在[1, 10000]之间

输出描述:

1个整数,表示分组后两组实力差绝对值的最小值。

题目解析:关键在于如何找到两组实力差最小的分组,想起以前小时候玩的斗鸡游戏,一般都是由实力最强的和实力第二强的来选队友,然后哪一队实力稍弱了,我们就让这一队先选就好。

一开始感觉有点像背包问题,我们算出总的游戏水平评分,然后把背包大小设置为总评分的一半往里面放就行,后来发现还需要保证每个组都是五人,这样就不太适用了。

import java.util.*;public class Main {public static void main(String[] args) {
//        int[] nums = new int[]{5, 1, 8, 3, 4, 6, 7, 10, 9, 2};// 处理数据Scanner scanner = new Scanner(System.in);int[] nums = new int[10];for (int i = 0; i < 10; i++) {nums[i] = scanner.nextInt();}// 按照实力排序放到栈中,这样每次取出来的都是现有最强的Arrays.sort(nums);Stack<Integer> stack = new Stack<>();for (int i = 0; i < nums.length; i++) {stack.add(nums[i]);}// 统计两个队伍的总评分int sum1 = 0;int sum2 = 0;while (!stack.isEmpty()) {// 哪个队伍弱了,就先选if (sum1 <= sum2) {sum1 += stack.pop();sum2 += stack.pop();} else {sum2 += stack.pop();sum1 += stack.pop();}}System.out.println(Math.abs(sum2 - sum1));}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • keepalived+lvs高可用负载均衡集群配置方案
  • MATLAB算法实战应用案例精讲-【数模应用】均值z 检验(附R语言、python和MATLAB代码实现)
  • Otter Go 语言编写的非竞争式缓存库
  • 8月5日学习笔记 glibc安装与安全用户角色权限
  • Postgresql数据库密码忘记的解决
  • 操作系统中的进程:深入解析与理解
  • Qt+TSC打印机调试
  • springboot疫情居家办公系统--论文源码调试讲解
  • AI驱动的招聘流程革新与挑战应对
  • HAProxy七层负载均衡配置方案
  • Linux的platform设备驱动框架
  • python中的迭代器、可迭代对象和生成器
  • 时序预测|基于变分模态分解-时域卷积-双向长短期记忆-注意力机制多变量时间序列预测VMD-TCN-BiLSTM-Attention
  • 【Linux】网络编程套接字Scoket:UDP网络编程
  • 如何设置RabbitMQ和Redis消息队列系统
  • [Vue CLI 3] 配置解析之 css.extract
  • Angular 2 DI - IoC DI - 1
  • C++11: atomic 头文件
  • JavaScript-Array类型
  • js写一个简单的选项卡
  • Python打包系统简单入门
  • SQLServer之创建显式事务
  • SQLServer之索引简介
  • sublime配置文件
  • webpack入门学习手记(二)
  • 观察者模式实现非直接耦合
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 七牛云 DV OV EV SSL 证书上线,限时折扣低至 6.75 折!
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 用Visual Studio开发以太坊智能合约
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • UI设计初学者应该如何入门?
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • (4) PIVOT 和 UPIVOT 的使用
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (十八)SpringBoot之发送QQ邮件
  • (推荐)叮当——中文语音对话机器人
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (转载)从 Java 代码到 Java 堆
  • (自用)gtest单元测试
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
  • .apk文件,IIS不支持下载解决
  • .bat批处理(六):替换字符串中匹配的子串
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .gitignore文件—git忽略文件
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET单元测试使用AutoFixture按需填充的方法总结
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • .net用HTML开发怎么调试,如何使用ASP.NET MVC在调试中查看控制器生成的html?