Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 计算在给定范围内的间隔数_Algorithm_Tree_Language Agnostic_Range_Intervals - Fatal编程技术网

Algorithm 计算在给定范围内的间隔数

Algorithm 计算在给定范围内的间隔数,algorithm,tree,language-agnostic,range,intervals,Algorithm,Tree,Language Agnostic,Range,Intervals,假设您有一个间隔列表,例如[(04),(13),(25),(26)]。此列表未排序。然后给你一个范围,比如[15]。您必须返回适合范围内的间隔数。在这个问题中,它将返回2。((13)及(25)) 间隔列表保持不变,但我们最多收到100000个查询,每个查询包含一个范围。对于每个范围查询,我们必须返回适合内部的间隔数 在研究之后,我读到了关于。但是,您只能查询与任何给定范围重叠的区间,而我正在查找在该范围内的区间。这些查询需要对数时间 有没有办法在类似的时间复杂度下解决这个问题,可能是使用区间树的

假设您有一个间隔列表,例如[(04),(13),(25),(26)]。此列表未排序。然后给你一个范围,比如[15]。您必须返回适合范围内的间隔数。在这个问题中,它将返回2。((13)及(25))

间隔列表保持不变,但我们最多收到100000个查询,每个查询包含一个范围。对于每个范围查询,我们必须返回适合内部的间隔数

在研究之后,我读到了关于。但是,您只能查询与任何给定范围重叠的区间,而我正在查找在该范围内的区间。这些查询需要对数时间


有没有办法在类似的时间复杂度下解决这个问题,可能是使用区间树的变化?我不是在寻找线性解决方案(因为暴力意味着扫描所有间隔)。

如果你要添加间隔,你可以在树的节点中记住id,你只需要记住交叉点a和b的段,所以,你们只需要让段树得到id的向量,穿过a和b。从另一棵树上,你会问a-b段的结尾数。之后,您将只删除发生过一次的id。它应该更快

对于相同的时间间隔列表,您是否收到多个查询?是的,最多10^5。如果您同时收到所有查询,则很容易。否则就很难了。你在问题中漏掉了很多细节,所以……是的,你同时得到了查询——我会将其添加到我的帖子中。如果你需要任何其他细节,我会添加它:)