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

青训营 X 豆包MarsCode 技术训练营--小M的比赛胜场计算

问题描述

小M参加了一场n个人的比赛,比赛规则是所有选手两两对决。每个人有一个能力值,对应着他们的序号。参赛者同时被分为黄色或蓝色两种颜色。比赛胜负的规则如下:

当比赛双方颜色不同时,能力值大的选手获胜;
当比赛双方颜色相同时,能力值较小的选手获胜。

你需要帮助小M计算每个选手在比赛中能赢得的场数。
测试样例

样例1:

输入:n = 3, a = [0, 0, 1]
输出:[1, 0, 2]

样例2:

输入:n = 4, a = [1, 0, 1, 0]
输出:[1, 2, 1, 2]

样例3:

输入:n = 5, a = [0, 1, 0, 1, 0]
输出:[2, 2, 2, 2, 2]

解题思路

理解胜负规则:当比赛双方颜色不同时,能力值大的选手获胜。当比赛双方颜色相同时,能力值较小的选手获胜。数据结构选择:我们可以使用一个数组来存储每个选手的胜场数。算法步骤:初始化一个长度为 n 的数组 wins,用于记录每个选手的胜场数。使用两层循环遍历所有可能的对决组合。根据对决双方的颜色和能力值,更新 wins 数组。 

代码

import java.util.Arrays;

public class Main {
public static int[] solution(int n, int[] a) {
// 初始化胜场数组
int[] wins = new int[n];

    // 遍历所有可能的对决组合for (int i = 0; i < n; i++) {for (int j = i + 1; j < n; j++) {// 判断胜负并更新胜场数if (a[i] != a[j]) {// 颜色不同,能力值大的选手获胜if (i > j) {wins[i]++;} else {wins[j]++;}} else {// 颜色相同,能力值小的选手获胜if (i < j) {wins[i]++;} else {wins[j]++;}}}}return wins;
}public static void main(String[] args) {System.out.println(Arrays.equals(solution(3, new int[]{0, 0, 1}), new int[]{1, 0, 2}));System.out.println(Arrays.equals(solution(4, new int[]{1, 0, 1, 0}), new int[]{1, 2, 1, 2}));System.out.println(Arrays.equals(solution(5, new int[]{0, 1, 0, 1, 0}), new int[]{2, 2, 2, 2, 2}));
}

}

http://www.lryc.cn/news/469510.html

相关文章:

  • 海王3纯源码
  • 【ShuQiHere】Linux 系统中的硬盘管理详解:命令与技巧
  • 数据结构之堆和二叉树的简介
  • 微信小程序上传图片添加水印
  • xshell5找不到匹配的host key算法
  • Linux中安装Tomcat
  • RV1126音视频学习(二)-----VI模块
  • 「C/C++」C++17 之 std::string_view 轻量级字符串视图
  • Linux内核-内核模块内核参数
  • 中电信翼康工程师:我在 Apache SeaTunnel 社区的贡献之旅
  • 【ESP32S3】VSCode 开发环境搭建
  • 大模型,多模态大模型面试问题基础记录24/10/24
  • 使用TimeShift备份和恢复Ubuntu Linux
  • win7现在还能用吗_哪些配置的电脑还可以安装win7系统
  • 基于GPT的智能客服落地实践
  • Sourcetree和GitLab的结合使用
  • 双十一开启极速达夜派;黑神话获泰国年度最佳游戏;AI 模型可帮助识别 17000 多种疾病的候选药物....| 网易数智日报
  • 深入理解JAVA虚拟机(一)
  • 从Excel文件中读取数据
  • 深入剖析MySQL的索引机制及其选型
  • 校园表白墙源码修复版
  • Android 内存优化——常见内存泄露及优化方案
  • Qt6.7.2中使用OpenSSL的坑
  • Mybatis-08.基础操作-删除
  • 通过FDM升级Firepower
  • 使用 Kibana 将地理空间数据导入 Elasticsearch 以供 ES|QL 使用
  • demo说明
  • 【c++篇】:从基础到实践--c++内存管理技巧与模版编程基础
  • 如何减小 Maven 项目生成的 JAR 包体积 提升运维效率
  • Python自动化会议记录与摘要生成