假设我有一个字符矩阵(A,B,...)。我想找到所有用相同字符填充的连续“区域”,并创建一个顶点对应于这些“区域”的图形。当且仅当对应区域具有公共边界时,图顶点才连接。
例如:
输入矩阵: AABC ABBB CCDD 领域: 1(A)、2(B)、3(C)、4(C)、5(D) 输出图(邻接表): 1(A) - 2(B), 4(C) 2(B) - 1(A)、3(C)、4(C)、5(D) 3(C) - 2(B) 4(C) - 1(A)、2(B)、5(D) 5(D) - 2(B), 4(C)
我的问题是:如何在给定矩阵的情况下构建这样的图。
显然,我可以这样做;
- 运行 BFS/DFS 以查找连接的组件(“区域”)
- 再次扫描矩阵以找到每个“区域”的邻居。
有没有更简单、更有效的方法来做到这一点?