编辑:层次结构不适合我的目标。留下原始请求,但我回答了满足以下核心请求(重叠/非重叠规则)的内容。
假设有一组 1D 线,每条线由 2 个无符号整数描述:start 和 end,start < end。我想根据它们是否重叠来创建组,但我不希望组包含任何不重叠的行。在一条线在多个组中的情况下,我想我需要某种层次结构来跟踪组中的组......
这是规则:
- 重叠的线必须在层次结构中尽可能低地组合在一起。
- 不重叠的线不能在同一组中。
无论如何,这是一个示例图片:

快速浏览一下,我可以说Line Aand Line Cform Group 0,Line Hand Line Iform Group 1, and Line Bis Group 2。其他所有内容都是重叠的组,Line D在Group 1and中Group 2,Line E在Group 0and中Group 1,并且Line FandLine G都在这三个组中。所以这里有两层分组,但我很确定可能有 N 取决于问题的复杂性。而且我也很确定我的示例没有代表一些问题。
处理这个问题的典型算法是什么?

