zoukankan      html  css  js  c++  java
  • 牛牛晾衣服

    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
        }
    };
    
  • 相关阅读:
    CocoaPods使用和在新工程中创建xcworkspace
    CocoaPods的安装使用和常见问题
    iMac上安装cocoapods步骤
    error:could not read data from info
    :after伪类+content内容生成
    无JavaScript实现选项卡轮转切换效果
    margin负值的相关应用
    absolute元素 text-align属性
    绝对定位元素的水平垂直居中
    flex 布局
  • 原文地址:https://www.cnblogs.com/qq136155330/p/13326608.html
Copyright © 2011-2022 走看看