美文网首页
装满杯子需要的最短总时长 ^.^ 2022/08/25

装满杯子需要的最短总时长 ^.^ 2022/08/25

作者: 佛说子曰道道 | 来源:发表于2022-08-24 13:08 被阅读0次

    https://leetcode.cn/problems/minimum-amount-of-time-to-fill-cups/

    如果需要时长最短,当然要尽可能多的满足在同一时间段内,可以装两杯水。同时,有一个需要注意的问题,假设温水有100杯,热水加冷水一共20杯,那么这时候还需要计算么?不需要,因为没有可优化的空间了,所以直接返回100就好。可以大大降低程序耗时。所以就保留三个数字的最大值,然后消耗其他两个数字,直到其他两个数字之和小于最大值,直接返回消耗的次数+最大值即可。
    上代码

    
    class Solution {
        public int fillCups(int[] amount) {
            int max=amount[0];
            if(amount[1]>max){
                max=amount[1];
            }
    
            if(amount[2]>max){
                max=amount[2];
            }
    
            int sum=0;
            for (int i : amount) {
                sum=sum+i;
            }
            sum=sum-max;
            if(max>sum){
                return max;
            }
            int count=0;
            while(max<sum){
                sum=sum-2;
                count++;
            }
            return count+max;
        }
    }
    
    

    相关文章

      网友评论

          本文标题:装满杯子需要的最短总时长 ^.^ 2022/08/25

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