力扣1353.最多可以参加的会议数目

力扣1353.最多可以参加的会议数目

  • 优先队列

    • 枚举时间i在i时刻仍开展的会议中选结束时间最近的那个
    • 优先队列存每天进行的会议
cpp 复制代码
  class Solution {
  public:
      int maxEvents(vector<vector<int>>& events) {
          int maxDay = 0;
          unordered_map<int,vector<int>> day2days;
          for(vector<int>& event : events)
          {
              //取最大数
              if(maxDay < event[1])
                  maxDay = event[1];
              //将每天开始的会议存下来
              day2days[event[0]].push_back(event[1]);
          }
          int res=0;
          //小根堆
          priority_queue<int,vector<int>,greater<>> q;
          for(int i=1;i<=maxDay;i++)
          {
              //能找到第i天开始的会议
              if(day2days.find(i) != day2days.end())
                  //全部push
                  for(int day : day2days[i])
                      q.push(day);
              //已经结束的pop掉
              while(!q.empty() && q.top() < i)
                  q.pop();
              //取出结束时间最近的
              if(!q.empty())
              {
                  q.pop();
                  res ++;
              }
          }
          return res;
      }
  };
相关推荐
萤虫之光12 分钟前
有序数组中的单一元素(一)
数据结构·算法
颜酱37 分钟前
从经典问题入手,吃透动态规划核心(DP五部曲实战)
前端·javascript·算法
WBluuue1 小时前
AtCoder Beginner Contest 438(ABCDEF)
c++·算法
Murphy_311 小时前
从根上了解一下复指数
算法
Run_Teenage1 小时前
Linux:理解IO,重定向
linux·运维·算法
你撅嘴真丑1 小时前
素数对 与 不吉利日期
算法
多米Domi0111 小时前
0x3f 第20天 三更24-32 hot100子串
java·python·算法·leetcode·动态规划
wzfj123451 小时前
Opaque Pointer / Incomplete Type
c++·算法·c
冰西瓜6001 小时前
贪心(四)——拟阵 算法设计与分析 国科大
算法·贪心算法
optimistic_chen2 小时前
【Redis 系列】常用数据结构---SET类型
linux·数据结构·数据库·redis·set·数据类型·命令行