【华为OD机试 2023最新 】 人数最多的站点(C++ 100%)

时间:2022-09-28 01:10:53

题目描述

公园园区提供小火车单向通行,从园区站点编号最小到最大通行如12341,然后供员工在各个办公园区穿梭,通过对公司N个员工调研统计到每个员工的坐车区间,包含前后站点,请设计一个程序计算出小火车在哪个园区站点时人数最多。

输入描述

第1个行,为调研员工人数

第2行开始,为每个员工的上车站点和下车站点。
使用数字代替每个园区用空格分割,如3 5表示从第3个园区上车,在第5个园区下车

输出描述

人数最多时的园区站点编号,最多人数相同时返回编号最小的园区站点

用例

题目解析

本题其实就是求解最大重叠区间个数的变种题。

即,我们只要找到具有最大重叠部分的区间的起点就是本题题解。

关于最大重叠区间个数求解,请看年年岁岁都容易挂的算法高频面试题,一线大厂经典面试题之堆和最大线段重合问题_哔哩哔哩_bilibili

上面视频的核心思想其实就是:

  • 首先,将所有区间按开始位置升序
  • 然后,遍历排序后区间,并将小顶堆中小于遍历区间起始位置的区间弹出(小顶堆实际存储区间结束位置),此操作后,小顶