区间合并算法
何为区间合并?
区间合并,肯定是要有区间的,我们先来说什么是区间:
何为区间
区间一般有一个左端点一个右端点

我们可以使用一个结构体来定义,其中既包括左节点,也包括右节点
复制代码
区间合并
上面我们说明了什么是区间,接下来我们来说什么是区间合并,
[[1,3],[2,6],[8,10],[15,18]]
合并为:[[1,6],[8,10],[15,18]]
区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6]
也就是有交集的区间进行一个合并
区间左端点排序 start,end 进行维护
![]()
三种情况,1.在其中 不用动了
![]()
2.超过 维护区间变长
![]()
3.不在其中(没有交集) 直接导出来,更新区间
![]()
我们来看代码的实现:
复制代码

版权声明: 本文为 InfoQ 作者【秋名山码民】的原创文章。
原文链接:【http://xie.infoq.cn/article/cd128750b77991d69c2a2b76a】。
本文遵守【CC BY-NC】协议,转载请保留原文出处及本版权声明。
评论