java - 组合一组 "ranges"来找到最少数量的范围 - 如何改进它?

标签 java

给定一组具有下限和上限的范围,我需要组合这些范围以生成最小数量的范围,该范围将覆盖原始集中的所有值,而不是其他值。

Ex 1: input  [100, 200], [120-170],[210 - 230]. Ouput - [100-200], [210-230]
Ex 2: input [100, 200], [120-210],[210 - 230]. Ouput - [100-230]

最佳答案

我建议查看https://en.wikipedia.org/wiki/Interval_tree

您已经使用了最有效的算法,该算法在 O(n) 合并之前涉及 O(n logn) 排序。所以不,我认为您无法进行任何其他改进。

关于java - 组合一组 "ranges"来找到最少数量的范围 - 如何改进它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31632585/

相关文章:

java - TreeViewer#update(对象元素,String[] 属性);属性指的是什么?

java - start.dfs.sh期间的异常

java - Lists、ArrayLists、Maps、Hashmaps、Collections 等之间有什么区别?

java - 在 LIBGDX 中绘制弯曲的自定义对象?

java - 在 ActionBarSherlock 的 NavigationTab 示例中使用 fragment

java - 如何使用 Stream API 在 Java 8 中编写以下代码?

java - Spring配置文件不从application.properties读取值

java - 无法使用 Arquillian 运行多个测试

java - 如何在 SWT TreeItem 之间绘制线条

java - 如何使用 Mockito 模拟 Java Path API?