给出具有开始和结束时间的项目列表(例如,开始日期和结束日期[最多但不包括]在一个日历月中),可由任何成员限制的最小跨越间隔数是多少一个间隔以及上述间隔中的成员是什么?我想一个例子会让这个更清楚(感觉我没有合适的词汇来描述问题):
输入:[A,B,C,D,E]
A: 1,3
B: 2,4
C: 1,10
D: 5,7
E: 5,10
输出:
1-2: A,C
2-3: A,B,C
3-4: B,C
4-5: C
5-7: C,D,E
7-10: C,E
如果存在差距,我也想知道(例如4-5不包含在任何项目中)。
我已经考虑了每个项目的基本步行和特别是最小 - 最大考虑因素,BST和间隔树,但是我觉得这里最好的方法是什么。谢谢!
答案 0 :(得分:0)
(注意:因为这些日子都在一个月内,所以你事先知道所有可能的日子是什么 - 并且没有多少 - 所以你可以将上述所有三个步骤合并为一个直接的传递使用最多31个桶的桶排序。)