Math 搜索最重叠的区域

Math 搜索最重叠的区域,math,search,Math,Search,我有这样一个搜索问题: “我有五个区域列表,即列表A、B、C、D和E。每个区域都有一个半径和一个中心,在空间中占据一个圆形区域。让我们将所有列表中的所有区域放置在二维地图上。地图中的每个重叠区域都由创建重叠的区域列表的名称组合编码(例如,“ABCDE”或“ABDE”).如何找到代码最长的重叠区域?列出它们及其关联区域。“ 它看起来像是这个的二维版本: “考虑一个大型聚会,其中有一个记录客人进出时间的日志。查找聚会中客人最多的时间。请注意,登记簿中的条目不按任何顺序排列 例如: 输入: ar

我有这样一个搜索问题:

“我有五个区域列表,即列表A、B、C、D和E。每个区域都有一个半径和一个中心,在空间中占据一个圆形区域。让我们将所有列表中的所有区域放置在二维地图上。地图中的每个重叠区域都由创建重叠的区域列表的名称组合编码(例如,“ABCDE”或“ABDE”).如何找到代码最长的重叠区域?列出它们及其关联区域。“

它看起来像是这个的二维版本:

“考虑一个大型聚会,其中有一个记录客人进出时间的日志。查找聚会中客人最多的时间。请注意,登记簿中的条目不按任何顺序排列

例如:

输入:

   arrl[] = {1, 2, 9, 5, 5}
   exit[] = {4, 5, 12, 9, 12}
第一位客人在1点到达,4点离开, 第二位客人2点到达,5点离开,依此类推。 "

答案是:

有人知道如何将答案扩展到我原来的问题吗

我可以想出一个蛮力算法,将整个地图分割成许多小正方形,然后找到被大部分区域遮挡的正方形。但这似乎很愚蠢,而且很耗费时间


谢谢。

闻起来像是家庭作业。。。你的问题是1D而不是2D。。。时间间隔的重叠不同于圆圈。。。暴力解决方案是
O(n^2)
如果对您来说还不够,您可以创建一个时间步长足够小的1D映射(1D数组),并且每个单元格都包含空字符串。然后在每个条目上向属于它的所有单元格添加ID。处理完所有条目后,在地图上搜索最长的字符串…即
O(n)
与此类似。如果您不需要该字符串,则可以使用计数器…也类似