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

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

你可能感兴趣的:(装满杯子需要的最短总时长 ^.^ 2022/08/25)