• 牛牛晾衣服


    C 牛牛晾衣服

    牛牛有n件带水的衣服,干燥衣服有两种方式。
    一、是用烘干机,可以每分钟烤干衣服的k滴水。
    二、是自然烘干,每分钟衣服会自然烘干1滴水。
    烘干机比较小,每次只能放进一件衣服。
    注意,使用烘干机的时候,其他衣服仍然可以保持自然烘干状态,现在牛牛想知道最少要多少时间可以把衣服全烘干。
    

    思路: 考虑从大往小取出衣服 进行烘干 其实存在一个问题 就是当前秒最优决策并不能代表下一秒的最优决策
    所以每件衣服 只能烘干一秒 然后放回待选区 所以使用对应的优先队列 附上代码
    
    class Solution {
    public:
        /**
         * 计算最少要多少时间可以把所有的衣服全烘干
         * @param n int整型 n件衣服
         * @param a int整型vector n件衣服所含水量数组
         * @param k int整型 烘干机1分钟可以烘干的水量
         * @return int整型
         */
        int solve(int n, vector<int>& a, int k) {
            priority_queue<int>que;
            while(!que.empty()) que.pop();
            for(int i = 0; i < n; i ++){
                que.push(a[i]);
            }
            if(k == 1){
                return que.top();
            }
            int time = 0, value = 0;
            while(que.top() > value){
                int t = que.top();
                t = t - k + 1; 
                /*
                你可能会疑惑为什么要 - k + 1
                答案就是对应的 如果考虑一个 8 k=4
                那么对应的话 剩余一个4 就不进入循环 所以得 + 1
                因为加1了 所以k == 1的情况就需要特判
                */
                que.pop();
                time += 1;
                value += 1;
                que.push(t);
            }
            return time;
            // write code here
        }
    };
    
  • 相关阅读:
    Netty实现Http客户端
    Netty实现Http服务端
    Netty实现Tcp客户端
    Netty实现Tcp服务端
    MySQL进阶系列:一文详解explain
    spring boot 获取运行时的yml里的active配置
    eureka 注册中心添加认证
    zuul 负载
    jenkins spring cloud
    秒杀系统如何设计?
  • 原文地址:https://www.cnblogs.com/qq136155330/p/13326608.html
Copyright © 2020-2023  润新知