假设我有一个字符矩阵(A,B,......)。我想找到所有连续的“区域”填充相同的字符,并创建一个图形,其顶点对应于那些“区域”。当且仅当对应区域具有公共边界时,图形顶点才会连接。
例如:
input matrix: A A B C A B B B C C D D areas: 1(A), 2(B), 3(C), 4(C), 5(D) output graph (adjacency list): 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)
我的问题是:如何在给定矩阵的情况下构建这样的图形。
显然,我可以这样做;
有没有更简单,更有效的方法呢?
答案 0 :(得分:1)
我不认为有更好的解决方案 一些优化可能会将字符转换为int。 但这不会改变大O符号的努力。
有些人可能希望将信息存储在位字段中以赢得速度竞赛, 但这不值得付出努力,代码也不可读。