题解 | #牛奶供应问题#

牛奶供应问题

https://www.nowcoder.com/practice/8c66c9b7deea496193e609b70f39783d

#include <queue>
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param taskDurations int整型vector 
     * @param capacity int整型 
     * @return int整型
     */
    int animalTaskScheduler(vector<int>& taskDurations, int capacity) {
        // write code here
        priority_queue<int,vector<int>,greater<int>> table;
        for(int i = 0;i<taskDurations.size();++i)
        {
            if(table.size()<capacity)
                table.push(taskDurations[i]);
            else
            {
                int t = table.top();
                table.pop();
                t += taskDurations[i];
                table.push(t);
            }
        }
        int res = 0;
        while(!table.empty())
        {
            res = table.top();
            table.pop();
        }
        return res;
    }
};

直接理解成三条并行流水线,起始时间都是0,用小根堆来记录最短的那根流水线的长度(堆顶),每次把task添加到最短的流水线后面。

结果就是取最终最长的那根流水线的时间

全部评论
笔误,样例中capacity为3,应该是一共capacity条流水线
点赞 回复 分享
发布于 2023-08-02 10:01 北京

相关推荐

头像
10-09 19:35
门头沟学院 Java
洛必不可达:java的竞争激烈程度是其他任何岗位的10到20倍
点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务