|
|
1
26
字典不是您描述的操作的适当数据结构。 如果要求间隔永远不重叠,那么您可以构建一个间隔的排序列表并对其进行二进制搜索。 如果间隔可以重叠,那么就有一个更难解决的问题。为了有效地解决这个问题,您需要构建一个间隔树: http://en.wikipedia.org/wiki/Interval_tree 这是一个众所周知的数据结构。请参阅“算法简介”或有关数据结构的任何其他体面的本科文本。 |
|
2
6
只有当间隔不重叠时,这才有效。您的主要问题似乎是从一个(键)值转换为一个间隔。 我会在排序列表周围写一个包装。sortedList.keys.indexof()将为您找到一个索引,该索引可用于验证间隔是否有效,然后使用它。 |
|
|
3
3
你当然可以做得比这更好(我以前喝酒吗?)但是你必须承认这是一个简单而美好的过程。
|
|
|
4
1
我通过确保集合是连续的来解决类似的问题,其中间隔永远不会重叠,并且它们之间也不会有间隙。每个间隔都定义为下一个边界,如果该边界等于或大于该边界且小于下一个间隔的下边界,则任何值都位于该间隔中。任何低于最低边界的东西都是一个特殊的箱子。 这在一定程度上简化了问题。然后,我们还通过实现二进制CHOP来优化密钥搜索。很遗憾,我不能共享代码。 |
|
5
0
我会做一个小的间歇课,就像这样:
所以你仍然可以在字典中进行正常的查找。也许你在打电话之前也应该做些检查
|
|
6
0
你可以找到一个 Java flavored c在 Open Geospatial Library . 它需要一些小的调整来解决你的问题,它也可以真正地使用一些C语言。 它是开源的,但我不知道在什么许可下。 |
|
|
Lyres · Ruby存储查询数据 8 年前 |
|
|
em1031 · 查找上一期价值的最快方法? 8 年前 |
|
|
DanielWoodward · MongoDB$查找值返回数组 8 年前 |
|
|
Milly B. · Google sheets查找和汇总 8 年前 |
|
|
C_psy · 将匹配列从长转换为宽 8 年前 |
|
|
Luis Costa · Mongo 3.6多条件聚合查找 8 年前 |