题目描述
公园园区提供小火车单向通行,从园区站点编号最小到最大通行如12341,然后供员工在各个办公园区穿梭,
通过对公司N个员工调研统计到每个员工的坐车区间,包含前后站点,请设计一个程序计算出小火车在哪个园区站点时人数最多。
输入描述:
输入的第1个行,为调研员工人数第2行开始,
为每个员工的开始上车站点和下车站点。
使用数字代替每个园区用空格,分割如35表示从第3个园区上车,在第5个园区下车
输出描述:
人数最多时的园区站点编号,最多人数相同时返回编号最小的园区站点
示例1:
输入:
3
1 3
2 4
1 4
输出:
2
说明:1号员工,在1站台上车,3站台下车。
2号员工,在2站台上车,4站台下车。
3号员工,在1站台上车,4站台下车。
综上,2站台时,人数最多。
解题思路
这道题需要注意的是,如果起点比终点大,就将该站点拆成2个站点。假设最大站点为4,那么【3,2】就可以拆分为【3,4】,【1,2】。
ArrayList表示个员工的实际上下车站点。对于每个员工,检查上车站点是否大于下车站点。如果是,则将上车站点到最大站点和1号站点到下车站点作为两个区间添加到列表中。否则,将原始的上下车站点作为区间添加到列表中。
LinkedList表示每个站点的人数,并根据降序排序。
该博客介绍了华为在线测评中的一道算法题,要求设计程序计算小火车在哪一站载客量最大。通过员工的上车和下车区间数据,博主提供了解题思路和代码实现,强调了当起点大于终点时应如何处理,并给出了示例及解决方案。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



