「教3妹学算法-每日3题(2)」装满杯子需要的最短总时长

「教3妹学算法-每日3题(2)」装满杯子需要的最短总时长

首页休闲益智填满杯子更新时间:2024-08-01

3妹

3妹:2哥2哥,出大事了,你有没有听说,安倍晋三被刺*身亡了。
2哥:嗯, 我也看到新闻了。
3妹:哎, 政治上的事,世事难料啊。
2哥:是的,这种事情我们也只能作为新闻听一听,也不是我们小平民可以关心的。
3妹:我还是好好学习,天天向上吧。 继续美好的一天,先从做题开始。

讲课

题目:

现有一台饮水机,可以制备冷水、温水和热水。每秒钟,可以装满 2 杯 不同 类型的水或者 1 杯任意类型的水。

给你一个下标从 0 开始、长度为 3 的整数数组 amount ,其中 amount[0]、amount[1] 和 amount[2] 分别表示需要装满冷水、温水和热水的杯子数量。返回装满所有杯子所需的 最少 秒数。

示例 1:

输入:amount = [1,4,2]
输出:4
解释:下面给出一种方案:
第 1 秒:装满一杯冷水和一杯温水。
第 2 秒:装满一杯温水和一杯热水。
第 3 秒:装满一杯温水和一杯热水。
第 4 秒:装满一杯温水。
可以证明最少需要 4 秒才能装满所有杯子。
示例 2:

输入:amount = [5,4,4]
输出:7
解释:下面给出一种方案:
第 1 秒:装满一杯冷水和一杯热水。
第 2 秒:装满一杯冷水和一杯温水。
第 3 秒:装满一杯冷水和一杯温水。
第 4 秒:装满一杯温水和一杯热水。
第 5 秒:装满一杯冷水和一杯热水。
第 6 秒:装满一杯冷水和一杯温水。
第 7 秒:装满一杯热水。
示例 3:

输入:amount = [5,0,0]
输出:5
解释:每秒装满一杯冷水。

提示:

amount.length == 3
0 <= amount[i] <= 100

思路:

排序,每一秒都装满最多类型的两个杯子。

java代码:

class Solution { public int fillCups(int[] amount) { int count = 0; while (amount[0]>0 || amount[1]>0 || amount[2]>0) { Arrays.sort(amount); amount[1]--; amount[2]--; count ; } return count; } }



查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved