题解 | #牛奶供应问题#
牛奶供应问题
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添加到最短的流水线后面。
结果就是取最终最长的那根流水线的时间
联想公司福利 1493人发布
查看6道真题和解析