• 2335. 装满杯子需要的最短总时长


    2335. 装满杯子需要的最短总时长

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

    这一题,其实分为两种情况,如果最大值大于其他两个值之和,那么时间一定是最大值的数量,如果最大值小于等于其他两个值之和,那么相处消减后一定可以只留下一杯不能被删除或者正好两杯两杯全部删除,解题代码如下:

    int fillCups(int* amount, int amountSize){
       
       return   fmax(fmax(fmax(amount[0],amount[1]),amount[2]),(amount[0]+amount[1]+amount[2]+1)/2);
    
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
  • 相关阅读:
    简简单单教你如何用C语言实现获取当前所有可用网口!
    2023-9-25 货仓选址
    【力客热题HOT100】-【068】238 除自身以外数组的乘积
    【Java】传输层UDP
    javaweb教师人事管理系统的设计
    Python计算机视觉编程 第八章 图像内容分类
    Windows server DHCP服务器搭建
    欧拉计划Python解法(第6题-第10题)
    17-spark任务划分
    http 和 https
  • 原文地址:https://blog.csdn.net/weixin_43327597/article/details/127695500