小慕正在策划部门的 Family Day 开放日活动,其中有一个从桶里取球的游戏。游戏规则如下:有 N 个容量相同的小桶等距排开,每个小桶里默认装了数量不等的小球,小桶里的小球数量记录在数组 bucketBallNums 中。游戏开始时,要求所有桶里的小球总数不能超过 SUM。如果小球总数超过 SUM,则需要为所有小桶统一设置一个 maxCapacity,并将超过该容量最大值的小球从桶中取出,直到每个小桶里的小球数量都不大于 maxCapacity。 请你根据输入的数据,计算出尽可能大的容量最大值 maxCapacity,并输出。 限制规则一 如果所有小桶的小球总数小于 SUM,则无需设置容量值,也无需从小桶中拿球,返回结果 []。 限制规则二 如果所有小桶的小球总数大于 SUM,则需要设置一个尽可能大的容量最大值 maxCapacity,并且需要从小桶中拿球,返回从每个小桶拿出的小球数量组成的数组。
提示:带虚线的词点一下有通俗解释。
输入描述
<p> 第一行输入2个正整数,数字之间使用空格隔开,其中第一个数字表示SUM,第二个数字表示bucketBallNums数组长度; </p> <p> 第二行输入N个正整数,数字之间使用空格隔开,表示bucketBallNums的每一项。 </p>
输出描述
<div data-page-id="Q9ILdheU6ompXdxmneucN3cLnog" data-docx-has-block-data="false"> <div style="white-space-collapse:preserve;" class="ace-line ace-line old-record-id-FIUWdhQlfo08uUxIQHBcFVYIn7f"> 一个数组,表示<span style="color:rgba(0, 0, 0, 0.87);font-family:"font-size:14px;white-space:pre-wrap;background-color:#FFFFFF;">从每个小桶里拿出的小球数量。</span> </div> </div> <span data-lark-record-data="{"rootId":"Q9ILdheU6ompXdxmneucN3cLnog","text":{"initialAttributedTexts":{"text":{"0":"一个数组。"},"attribs":{"0":"*0+5"}},"apool":{"numToAttrib":{"0":["author","7115054903550050305"]},"nextNum":1}},"type":"text","referenceRecordMap":{},"extra":{"mention_page_title":{},"external_mention_url":{}},"isKeepQuoteContainer":false,"isFromCode":false,"selection":[{"id":69,"type":"text","selection":{"start":0,"end":5},"recordId":"FIUWdhQlfo08uUxIQHBcFVYIn7f"}],"payloadMap":{},"isCut":false}" data-lark-record-format="docx/text" class="lark-record-clipboard"></span>
示例
示例 1
输入
14 7 2 3 2 5 5 1 4
输出
[0, 1, 0, 3, 3, 0, 2]
说明:小球总数为22,SUM = 14,超出范围了,需从小桶取球。 - maxCapacity = 1,取出球后,1 1 1 1 1 1 1, 桶里剩余小球总和为7,远小于14 - maxCapacity = 2,取出球后,2 2 2 2 2 1 2,桶里剩余小球总和为13,小于14 - maxCapacity = 3,取出球后,2 3 2 3 3 1 3,桶里剩余小球总和为16,大于14 因此选择maxCapacity为2 ,每个小桶小球数量大于 2 的都需要拿出来。
示例 2
输入
3 3 1 2 3
输出
[0, 1, 2]
说明:小球总数为6,SUM = 3,超出范围了,需从小桶取球。 取maxCapacity = 1,则小球总数为 3,从 0 号桶取出 0 个球,从 1 号桶取出 1 个球,从 2 号桶取出 2 个球。故输出[0, 1, 2]。
示例 3
输入
6 2 3 2
输出
[]
说明:小球总数为5,SUM = 6,无需从小桶取球;
时间限制 1000 ms · 内存限制 128 MB