力扣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;
      }
  };
相关推荐
mjhcsp5 分钟前
C++ A* 算法:启发式路径搜索的黄金标准
android·c++·算法
仰泳的熊猫21 分钟前
题目2281:蓝桥杯2018年第九届真题-次数差
数据结构·c++·算法·蓝桥杯
blackicexs27 分钟前
第九周第一天
数据结构·算法
小小怪75033 分钟前
C++中的代理模式高级应用
开发语言·c++·算法
hoiii18734 分钟前
MATLAB模拟ADS-B数据解码与信号处理整体流程
数据结构·matlab·信号处理
Dfreedom.40 分钟前
归一化技术全景指南
深度学习·算法·机器学习·归一化
Genevieve_xiao40 分钟前
【写给新人】在 vscode 中配置适用于算法竞赛背景的 c/c++
c语言·vscode·算法
TracyCoder1231 小时前
LeetCode Hot100(70/100)—— 322. 零钱兑换
算法·leetcode·职场和发展
2401_891482171 小时前
C++中的观察者模式
开发语言·c++·算法
沐雲小哥1 小时前
bevfomer算法嵌入的tricks
数码相机·算法