力扣1882.使用服务器处理任务

力扣1882.使用服务器处理任务

  • 两个优先队列

    • 一个放未使用的服务器
    • 一个放已使用的服务器
  •   class Solution {
          using PLI = pair<long long, int>;
          using PII = pair<int, int>;
      public:
          vector<int> assignTasks(vector<int>& servers, vector<int>& tasks) {
              int m = servers.size(),n = tasks.size();
              priority_queue<PLI, vector<PLI>, greater<PLI>> busy;
              priority_queue<PII, vector<PII>, greater<PII>> idle;
              for(int i=0;i<m;i++)
                  idle.emplace(servers[i],i);
              
              long long ts = 0;
              //把占用结束的服务器弹出
              auto release = [&]()
              {
                  while(!busy.empty() && busy.top().first <= ts)
                  {
                      auto &&[_,idx] = busy.top();
                      idle.emplace(servers[idx],idx);
                      busy.pop();
                  }
              };
      
              vector<int> res;
              for(int i=0;i<n;i++)
              {
                  ts = max(ts, (long long)i);
                  //把占用结束的弹出
                  release();
                  if(idle.empty())
                  {
                      ts = busy.top().first;
                      release();
                  }
                  //取未占用的服务器
                  auto&& [_,idx] = idle.top();
                  res.push_back(idx);
                  busy.emplace(ts+tasks[i] , idx);
                  idle.pop();
              }
              return res;
          }
      };
    

相关推荐

  1. 1882.使用服务器处理任务

    2024-07-22 08:02:03       18 阅读
  2. 1802.有界数组中指定下标处的最大值

    2024-07-22 08:02:03       25 阅读
  3. 1482.制作m束花所需的最少时间

    2024-07-22 08:02:03       25 阅读
  4. 动态规划:LCR 188. 买卖芯片的最佳时机

    2024-07-22 08:02:03       21 阅读
  5. PHP使用 enqueue/amqp-lib拓展实现rabbitmq任务处理

    2024-07-22 08:02:03       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 08:02:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 08:02:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 08:02:03       45 阅读
  4. Python语言-面向对象

    2024-07-22 08:02:03       55 阅读

热门阅读

  1. redis常用架构以及优缺点

    2024-07-22 08:02:03       17 阅读
  2. 保研面试高频问题——day1

    2024-07-22 08:02:03       17 阅读
  3. Linux内存管理--系列文章八——内存管理架构

    2024-07-22 08:02:03       14 阅读
  4. R和RStudio的下载和安装(Windows 和 Mac)

    2024-07-22 08:02:03       13 阅读
  5. PO设计模式

    2024-07-22 08:02:03       16 阅读
  6. 【Python】探索 Python 中的 slice 方法

    2024-07-22 08:02:03       14 阅读
  7. WEB渗透信息收集篇--IP和端口信息

    2024-07-22 08:02:03       18 阅读
  8. rabbitmq笔记

    2024-07-22 08:02:03       18 阅读
  9. DFS从入门到精通

    2024-07-22 08:02:03       13 阅读
  10. Robot Operating System——借用内存型消息

    2024-07-22 08:02:03       13 阅读