码迷,mamicode.com
首页 > 其他好文 > 详细

[算法]区间重合判断

时间:2014-09-01 22:53:13      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:区间合并   区间重合   区间查询   

题目描述:

给定一个源区间 [x,y]和N个无序的目标区间[x1,y1],[x2,y2],...[xn,y,],判断给定的源区间[x,y]在不在目标区间内。

例如:给定源区间[1 6]和目标区间[1 2][2 4][4 9]即可认为区间[1 6]在目标区间内,因为源区间的并集为[1 9 ].

试想一下,现在在这样的一个目标区间的集合, 需要频繁地去查询一个区间是否在该集合中。那么怎么样才能降低单次查询的复

杂度呢。预处理。对区间的预处理可以满足这样的需求。

直接上方法:

第一步: 首先对区间进行合并(也就是将区间merge成为不相交的区间的集合)

第二步: 再在这个处理之后的区间中去查找这样源区间,关于查找,当然二分可以有很好的效果,那么将区间排序即可。


于是: 1  将区间按其起始点排序。

      2  Merge相交的区间

      3  二分查找源区间即可。


代码如下:





[算法]区间重合判断

标签:区间合并   区间重合   区间查询   

原文地址:http://blog.csdn.net/xuqingict/article/details/38984795

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!