华为OD机试E卷 - 星际篮球争霸赛/MVP争夺战(Java & Python& JS & C++ & C )

题目描述

在星球争霸篮球赛对抗赛中,最大的宇宙战队希望每个人都能拿到 MVP,MVP 的条件是单场最高分得分获得者。

可以并列所以宇宙战队决定在比赛中尽可能让更多队员上场,并且让所有得分的选手得分都相同,然而比赛过程中的每一分钟的得分都只能由某一个人包揽。

输入描述

输入第一行为一个数字 t ,表示为有得分的分钟数

  • 1 ≤ t ≤ 50

第二行为 t 个数字,代表每一分钟的得分 p

  • 1 ≤ p ≤ 50

输出描述

输出有得分的队员都是 MVP 时,最少得 MVP 得分。

示例1

输入

9
5 2 1 5 2 1 5 2 1

输出

6

说明

一共 4 人得分,分别都是 6 分
 5 + 1 , 5 + 1 , 5 + 1 , 2 + 2 + 2

解题思路

本题是可以归纳到:将数组划分为k个和相等的子集

可以在lettcode找到最原始的问题:698. 划分为k个相等的子集 - 力扣(LeetCode)

分析

首先第一个目标,将数组拆分,每个子数组的和相等。

比如[2,2,4] 拆分为[2,2] [4]

然后在所有的可能拆分条件下,子数组的和最小。

比如 [1,1,1,1] 可以拆分为[1] [1] [1] [1] 或 [1,1] [1,1]

明显最小的子数组元素之和是1.

Java

import java.util.Scanner;
import java.util.Arrays;

public class Main {
   
    public static 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

算法大师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值