面试问题:
给定数十亿个矩形,找到最小区域与给定点P(x,y)重叠的矩形
通过按顺序处理每个矩形,有一种简单的方法可以在O(n)时间内实现答案,但是进一步优化它可以提供大量的Rectangle数组。
我最好的方法是检查每个矩形,查看该点是否在内,然后计算面积并与当前最小面积进行比较。这可以一次完成。我无法想象任何其他不需要检查所有矩形的方法
答案 0 :(得分:2)
如果您使用具有多个点查询的相同矩形集,则R-tree数据结构允许在不检查所有矩形的情况下知道哪些矩形包含给定点
答案 1 :(得分:1)
答案 2 :(得分:1)
很可能你并没有说出完整的问题。因为它现在的方式,您的解决方案是最佳的。
无论您需要通过每个矩形至少一个,检查它是否实际覆盖了该点并计算其面积。没有必要以任何方式对它们进行预处理,因为您需要回答只有一个问题。
如果您将来需要回答许多类似的问题,预处理才有意义。