1. 简述

    给定一个源区间[x,y] (y>=x)和N个无序目标区间[x1,y1][x2,y2][x3,y3]...[xn][yn],判断[x,y]是否在目标区间内。

2. 思路

    这个比较简单,合并目标区间,判断源区间是否在目标区间内即可。具体过程如下:
    第一步,先把目标区间排序。
    第二步,从第一个区间开始,遍历首先找到一个[xi,yi],使得xi<=x,如果找不到,说明不在目标区间内,如果找到了并且yi>=y,那么结束工作,源区间在目标区间内,如果找到了,但是yi<y,那么还需要继续遍历,进入第三步。
    第三步,继续遍历[xi,yi],如果xi>y(i-1),那么区间断裂,源区间不在目标区间内,否则如果yi>=y,找到了,源区间在目标区间内,否则继续寻找。
    第四步,如果都遍历结束了,但是没有发现源区间一定在目标区间内,说明源区间必然不在目标区间内。

    第一步,N*LogN,第二步+第三步,N,第四步,1。复杂度为O(N LogN)

3. 参考

    编程之美,2.19,区间重合判断

相关文章:

  • 2021-05-25
  • 2022-12-23
  • 2022-12-23
  • 2021-08-01
  • 2022-03-03
  • 2022-12-23
  • 2021-12-08
猜你喜欢
  • 2021-07-07
  • 2022-12-23
  • 2022-12-23
  • 2022-01-18
  • 2021-08-22
  • 2021-07-07
相关资源
相似解决方案