使用TreeSet实现间隔的不相交间隔集

时间:2018-08-09 01:25:33

标签: java algorithm intervals

我正在尝试使用TreeSet实现不连续的间隔集

这是我的想法,这些是伪代码

TreeSet<Interval> intervals = new TreeSet<>((i1, i2) -> {
    if (i1.start > i2.end) return 1;
    else if (i1.end < i2.start) return -1;
    else return 0;
});
while (intervals.contains(interval)) {
    Interval other = intervals.get(interval);
    intervals.remove(interval)
    merge(interval, other);
}
intervals.add(interval);

我认为这将一直有效,直到我发现TreeSet中没有get方法。我们是否可以用类似的想法来管理间隔,以便可以在O(logn)时间内将间隔添加到排序的间隔中,而不用扫描整个集合。

0 个答案:

没有答案