• LeetCode简单题之装满杯子需要的最短总时长


    题目

    现有一台饮水机,可以制备冷水、温水和热水。每秒钟,可以装满 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

    来源:力扣(LeetCode)

    解题思路

      对于三种水,我们只需要每次固定将两个剩余最大的水杯减一即可,直到所有的水杯数量都小于1.

    class Solution:
        def fillCups(self, amount: List[int]) -> int:
            count=0
            while amount[0]>0 or amount[1]>0 or amount[2]>0 :
                amount.sort()
                amount[1]-=1
                amount[2]-=1
                count+=1
            return count
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    在这里插入图片描述

  • 相关阅读:
    tensorflow求解泊松方程
    【数据机构】最小生成树(prim算法)
    LeetCode 155. 掷骰子等于目标和的方法数:动态规划
    ASUS华硕天选4笔记本电脑FX507VV原厂Windows11系统
    Wpf 多指应用开发解析
    在线论坛系统
    H3C SecParh堡垒机 data_provider.php 远程命令执行漏洞
    Eureka详解与实践
    Eureka详解
    用Python画出圣诞树,瞧瞧我这简易版的吧
  • 原文地址:https://blog.csdn.net/qq_18560985/article/details/125998979