力扣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;
      }
  };
相关推荐
码了三年又三年23 分钟前
【算法】滑动窗口—最小覆盖子串
算法
AIAdvocate23 分钟前
力扣-96.不同的二叉搜索树 题目详解
python·算法·动态规划
说好不能打脸23 分钟前
利用模糊综合评价法进行数值评分计算——算法过程
算法
小周的C语言学习笔记26 分钟前
鹏哥C语言33---循环语句 for
c语言·c++·算法
shylyly_28 分钟前
归并排序
数据结构·算法·归并排序·递归归并排序·非递归归并排序
luthane29 分钟前
python 实现entropy熵算法
python·算法·概率论
X BoHang29 分钟前
洛谷 P4683 [IOI2008] Type Printer
算法
itoshi rin1 小时前
简单题21 - 合并两个有序链表(Java)20240917
java·数据结构·链表
ZH_qaq1 小时前
【洛谷】P11062 【MX-X4-T2】「Jason-1」加法 的题解
c++·算法
程序猿练习生1 小时前
C++速通LeetCode简单第16题-买卖股票的最佳时机
开发语言·c++·leetcode