【发布时间】:2013-08-23 09:43:14
【问题描述】:
我的问题如下:
具有间隔列表的文件:
1 5
2 8
9 12
20 30
还有一个范围
0 200
我想做这样一个交集,它将报告给定范围内我的间隔之间的位置 [start end]。
例如:
8 9
12 20
30 200
除了如何解决这个问题的任何想法之外,阅读一些关于优化的想法也很不错,因为与往常一样,输入文件会很大。
【问题讨论】:
-
间隔排序了吗?
-
我不明白你在问什么,但考虑到你匹配的范围只有 1 个,如果你需要扫描整个文件,O(n) 是最坏的情况。如果您可以将其保存在内存中并需要执行多个查询,那么例如在不同的二叉树中按开始和结束对它们进行排序可能会有所帮助...
-
你不是也有 0 1 吗?
-
将完整文件加载到内存中是可行的。为了更形象地表达我的意思。如果你拿一张纸并在上面画一条从 0 到 200 的线。现在添加到这条线的间隔:例如。 1-5、2-8、20-30。现在我想要的是在我们的 0-200 区间内有起始位置,其中没有添加的小区间,它们没有映射的地方。这有帮助吗?
-
@njzk2 这只是一个简单的例子。但在实际设置中,几乎为 0 的可能性,即某事将从 0 位置开始,但仍然可以这样
标签: python algorithm intervals