华为OD机考双机位C卷 - 最佳对手 _ 实力差距最小总和 (Java & Python & JS & GO & C++ & C)

最佳对手 _ 实力差距最小总和

2026华为OD机试双机位C卷 - 华为OD上机考试双机位C卷

华为OD机试双机位C卷真题目录点击查看: 【全网首发】2026华为OD机位C卷 机考真题题库含考点说明以及在线OJ(OD上机考试双机位C卷)

题目描述

游戏里面,队伍通过匹配实力相近的对手进行对战。但是如果匹配的队伍实力相差太大,对于双方游戏体验都不会太好。

给定n个队伍的实力值,对其进行两两实力匹配,两支队伍实例差距在允许的最大差距d内,则可以匹配。
要求在匹配队伍最多的情况下匹配出的各组实力差距的总和最小。

输入描述

第一行,n,d。队伍个数n。允许的最大实力差距d。

  • 2<=n <=50

  • 0<=d<=100

第二行,n个队伍的实力值空格分割。

  • 0<=各队伍实力值<=100

输出描述

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

示例1

输入

6 30
81 87 47 59 81 18

输出

57

说明

18与47配对,实力差距29
59与81配对,实力差距22
81与87配对,实力差距6
总实力差距29+22+6=57

示例2

输入

6 20
81 87 47 59 81 18

输出

12

说明

最多能匹配成功4支队伍。
47与59配对,实力差距12,
81与81配对,实力差距0。
总实力差距12+0=12

示例3

输入

4 10
40 51 62 73

输出

-1

说明

实力差距都在10以上,
没有队伍可以匹配成功。

解题思路

给定 n 个队伍的实力值和一个允许的最大实力差距 d ,要求将队伍进行两两配对,满足每对队伍的实力差距不超过 d ,并且在尽可能多的匹配情况下,使所有匹配的实力差距的总和最小。如果没有符合条件的匹配,则输出 -1

posted @ 2026-03-12 20:30  华为od算法大师  阅读(2)  评论(0)    收藏  举报