最大重叠区间数问题(华为) 2021-07-21

1、自动驾驶出租车订单分配
某城市开展自动驾驶出租车试运营,在城市里面设置了N个固定的,上下客出租车站点,为了方便计算,假设这些站点呈圆形部署。相邻2个站点的行车时间固定为5 ,每个站点内的出租车数目足够多,每辆出租车运行的时候在圆形线路上运行,方向可以顺时针也可以逆时针,选择最短的路线运行,如果起始和终点相同,则为无效订单。不处理。现在有N个乘客使用APP下发订单,包含使用出租车的时间,上车的站点下车的站点,请计算整个运作周期最多有多少辆出租车同时运营。下车时间点的车辆不计算在运行车辆中。
解答要求
时间限制: C/C++ 1000ms,其他语言: 2000ms
内存限制: C/C++ 256MB,其他语言: 512MB
输入
第一行输入N和K , N代表站点的数量, K代表乘客的数目2<=N<=100, 0
<=K<=10000
之后K行,分别输入使用车辆的起始时间,上车的站点ID,下车的站点ID,
0<=起始时间<= 1000
输出
输出最大同时运营的出租车数量

样例1.
复制输入:50 3
0 0 15
10 10 11
15 20 40
复制输出:
2
解释:第一个乘客使用第一辆出租车
第二个乘客上车时,第-辆车只行驶了2站,因此同时运行2辆出租车
第三个乘客上车时,第一-辆出租车行驶了3站,第二辆出租车行驶了一站,到底目的地,因此此时同时运行的出租车还是2辆

1、A Concise Template for "Overlapping Interval Problem
2、算法练习:重叠区间个数
3、leetcode 重叠区间问题

#include <bits/stdc++.h>
using namespace std;


//区间定义
class Interval
{
   
public:
	Interval(int iStart, int iEnd) : m_iStart(iStart), m_iEnd(iEnd){
   }
	int m_iStart;
	int m_iEnd;
};

typedef vector<Interval> IntervalVec;
 
//区间拆分的点定义
class PointComparable
{
   
public:
	PointComparable(int iVal, int iType) : m_iVal(iVal), m_iType(iType){
   }
 
	//重载小于操作符,排序使用
	bool operator < (const PointComparable& pcPoint)
	{
   
		if (this->m_iVal == pcPoint.m_iVal)
		{
   
			return this->m_iType < pcPoint.m_iType;
		
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值