如果我有数字范围,我需要返回彼此不重叠的集合例如,这是一组数字:
1,4
0,3
4,7
0,4
我需要回复:
0,3
4,7
更大数据集的示例:
0,1
0,2
2,5
4,8
3,7
8,11
8,9
9,11
我需要回复:
0,2
3,7
8,11
需要考虑如果较小的集合在另一个集合中并且应该被丢弃的情况。使用前一组,
0,1
0,2
3,7
由于0,1包含在0,2集0,1之内应该被丢弃。
任何帮助将不胜感激。非常感谢。
答案 0 :(得分:1)
如果您的目标是找到最大的非重叠集合,则应检查Interval scheduling问题,尤其是使用贪婪算法的解决方案。如果性能不重要,您可以尝试使用python set union或子集,并相互比较集。
set(range(0, 4)).union(set(range(0, 1)))