华为OD机试真题- 取出尽量少的球【2023Q2】【JAVA、Python、C++】

题目描述:
某部门开展Family Day开放日活动,其中有个从桶里取球的游戏,游戏规则如下:有N个容量一样的小桶等距排开,且每个小桶都默认装了数量不等的小球,每个小桶所装的小球数量记录在数组bucketBallNums中,游戏开始时,要求所有桶的小球总数不能超过SUM,如果小球总数超过SUM,则需对所有的小桶统一设置一个容量最大值maxCapacity,并需将超过容量最大值的小球拿出来,直至小桶里的小球数量小于maxCapacity;请您根据输入的数据,计算从每个小桶里拿出的小球数量?
限制规则一:
如果所有小桶的小球总和小于SUM,则无需设置容量值,并且无需从小桶中拿球出来,返回结果[];
限制规则二:
如果所有小桶的小球总和大于SUM,则需设置容量最大值maxCapacity,并且需从小桶中拿球出来,返回从每个小桶拿出的小球数量组成的数组;
输入描述:
第一行输入2个正整数,数字之间使用空格隔开,其中第一个数字表示SUM;第二个数字表示bucketBallNums数组长度;
第二行输入N个正整数,数字之间使用空格隔开,表示bucketBallNums的每一项;
输出描述:
从每个小桶里拿出的小球数量,并使用一维数组表示
补充说明:
    1 <= bucketBallNums[i] <= 10^9
    1 <= bucketBallNums.length = N <= 10^

猜你喜欢

转载自blog.csdn.net/2301_76848549/article/details/129580383
今日推荐