二维坐标系中如何高效找出被红块包围的白块区域?

新手上路,请多包涵

原始需求:想在一个二维坐标系中,找出哪些白块被红块包围,形成无法到达的区域(找出图中类似1、2、3的区域)。

问题:现在已经使用Flood Fill Algorithm算法实现了需求,但是该算法需要遍历所有白块,效率达不到要求。
我的直观想法是:把所有相连的红块看作是一个“无向图”,那么示例中就有3个“无向图”。然后分别用DFS+ParentNode的方式遍历无向图找到“环”,找到“环”后遍历其中的白块就行了。
但这个方法的问题是无法处理区域1和区域2的“共边”,在这个“共边”上的节点应该要被访问两次,到此我就不会了。

求解:我应该朝哪个方向继续研究?有无什么已有的算法或理论可供参考?

阅读 194
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏