algorithm - 存储二维区间的数据结构

标签 algorithm data-structures tree multidimensional-array

我正在尝试解决一个涉及巨大二维屏幕(40000 * 40000 点)的问题。有一些无效点,给了我一个矩形窗口。所有位于矩形窗口内的无效点左上角的点也都无效。

我需要构建一个支持以下操作的数据结构: 1)找到我必须处理的有效点数。 2) 查询某个点是否有效。

根据我的研究,我考虑过线段/区间树,但我不能完全理解它们,而且不确定它们是否可以处理二维点。

任何人都可以给我一些不错的文章/实现,并详细描述可以实现上述操作的数据结构吗?

谢谢, 罗希特

最佳答案

这是今年facebook hackercup的“坏点”问题。请参阅official solution带有代码和解释。

关于algorithm - 存储二维区间的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14839255/

相关文章:

python - 使用 Numpy 进行矩阵运算的更简单方法

java - 查找列表所有可能拆分的算法

c++ - 如何指向链表中的下一个节点并打印值

c++ - 在低延迟应用程序中,unordered_map 是否是比 vector 更好的解决方案?

c - 传递未初始化的变量使用 C 抛出错误

algorithm - Ocaml - 编写一个参数数量在运行时确定的函数

arrays - 比较排序是否必须比较所有相邻的单元格?

algorithm - 是否总是可以通过树旋转将一个BST转换为另一个BST?

algorithm - BST 层序遍历的惯用 Kotlin

c++ - Trie 搜索正则表达式 : C++