在一张由边缘
点:
边缘:
我的想法是逆时针迭代地图,直到我找到初始点。那是一个多边形,然后我把它放在多边形列表中,并继续寻找其他多边形。问题是,我不想超过
谢谢!
Map<Point, List<Edge>>
组成的地图中,给定N
个点,能否在O(N log N)
时间内得到这些边所形成的多边形?我知道你必须遍历所有的顶点,并获取包含该顶点为起始点的边缘。这些是Voronoi图的边缘,每个顶点最多有3个与之相邻的顶点。因此,在地图中,键是顶点,值是一个列表,其中顶点是起始节点。例如:点:
a,b,c,d,e,f,g
边缘:
[a,b]; [a,c]; [a,d], [b,c], [d,e], [e,g], [g,f]
我的想法是逆时针迭代地图,直到我找到初始点。那是一个多边形,然后我把它放在多边形列表中,并继续寻找其他多边形。问题是,我不想超过
O(N log N)
的复杂度。谢谢!