Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设给定一个vector<vector<bool>>(正方形区域),其中 1 对应于“填充”框。有什么方法可以在 O(n) 时间内找到整个区域吗?例如,这个向量将有两个完整的区域:
vector<vector<bool>>
0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
这称为 8 连通区域增长。这是图像处理中的一种标准技术,您选择一个种子像素并“增长”。这可以通过BFS在像素数的线性时间内完成:
区域列表包含一个区域,将其设置为零。找到另一个种子并再次运行,直到找不到种子。