华为机试真题详解

您所在的位置:网站首页 华为最辛苦 华为机试真题详解

华为机试真题详解

2023-03-13 20:16| 来源: 网络整理| 查看: 265

华为机试真题详解_篮球比赛_200分

@TOC

前言

《华为机试真题详解》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。

如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议!

==本文解法非最优解(即非性能最优)。==

题目描述

篮球(5V5)比赛中,每个球员拥有一个战斗力,每个队伍的所有球员战斗力之和为该队伍的总体战斗力。

现有10个球员准备分为两队进行训练赛,教练希望2个队伍的战斗力差值能够尽可能的小,以达到最佳训练效果。

给出10个球员的战斗力,如果你是教练,你该如何分队,才能达到最佳训练效果?请输出该分队方案下的最小战斗力差值。

输入描述:10个篮球队员的战斗力(整数,范围[1,10000])

战斗力之间用空格分隔

如: 10 9 8 7 6 5 4 3 2 1

不需要考虑异常输入的场景。

输出描述:最小的战斗力差值,如: 1

示例 1

输入:10 9 8 7 6 5 4 3 2 1

输出:1

说明:1 2 5 9 10分为一队,3 4 6 7 8分为一队,两队战斗力之差最小,输出差值1。备注:球员分队方案不唯一,但最小战斗力差值固定是1。

参考代码 暴力解法 对 10 个人的战斗力求按5人分组的所有组合情况,一共252中情况 t 是所有人的战斗力 ans 是2队战斗力差,默认值为 10人战斗力总和(因为每个人战力都是整数可以使用总和,如果有负数的可能,需要使用 float("inf") 表示一个无限的数)abs(t-2*sum(left)) : sum(left) 是 A 队的战力, t-sum(left) 是B队的战力, t-sum(left) -sum(left)是战力差,可表示为abs(t-2*sum(left)) 因为是10人分组,只有252种可能,这个方式求解应该也不会超时,数据再多的话,如LeetCode上相同的一道题,使用该方***在用例 [7772197,4460211,-7641449,-8856364,546755,-3673029,527497,-9392076,3130315,-5309187,-4781283,5919119,3093450,1132720,6380128,-3954678,-1651499,-7944388,-3056827,1610628,77

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

华为机试真题详解 文章被收录于专栏

含牛客网、华为面经试题、华为OD机试。题目来自牛客平台机考同学的机试分享,题目描述信息可能记录不完整,题解无法保证通过率,只提供结题思路,注意!注意!!不要直接使用博主代码进行机考! 针对能力薄弱的同学,对华为机试题进行详细讲解,分析过程拆解,部分附过程图,并在牛客网选取相似问题进行比较。

注意!此信息未认证,请谨慎判断信息的真实性!

提示


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3