美文网首页
【教3妹学算法-每日3题(2)】装满杯子需要的最短总时长

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

作者: 程序员小2 | 来源:发表于2022-07-11 09:05 被阅读0次

    插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
    坚持不懈,越努力越幸运,大家一起学习鸭~~~

    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;
        }
    }
    
    

    相关文章

      网友评论

          本文标题:【教3妹学算法-每日3题(2)】装满杯子需要的最短总时长

          本文链接:https://www.haomeiwen.com/subject/wfswbrtx.html