区间覆盖问题

问题:
有很多区间,比如[1.1,3.4] [1,3] [-1,3] [2.5,6].....
求区间重合次数最多的 比如上面[2.5,3]被重合了4次

思路:
用a[n][2]存储所有的区间,a[n][0]存储区间的开始值,a[n][1]存储区间的结束值,并且
a[n][0]<a[n][1]

首先将a[n][2]排序,按照起始点进行排序,升序,那么就会得到所有区间的起始点有序。

遍历a[n][2],比较a[i][1]与a[i+1][0],a[i+2][0]...(0<=i<n).比较直到a[k][0]>a[i][0]为止或者i=n-1,第i+1区间与其它所有区间的重合区间为[a[k-1][0],a[i][0]],覆盖次数为k-i

统计最大一次覆盖次数就行了。

时间复杂度:
排序:比如快排 O(nlogn)
查找覆盖区间:O(n*n);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值