我正在编写一个程序来读取潜在的 Latin Square并判断它是否是一个有效的拉丁方。现在我正在尝试判断所选区域是否是连续区域。
同时读入潜在的拉丁广场和该地区的位置。区域 [0,1][0,2][1,1][1,2]
将是一个有效区域,因为它是连续的; [0,0][0,2][1,1][1,2]
将不连续或有效,因为 [0,0]
不能到达。我如何判断它们是否相邻?
最佳答案
解决此问题的合理方法是 flood fill算法。
基本上,从您所在地区的任何一点开始,并通过标记该地区的所有邻居,然后标记该地区的所有邻居,在您的地区建立一组连接到起点的位置没有标记。当没有新的东西要标记时,您就找到了包含起点的最大连续区域。如果不是整个区域,则该区域不连续。
关于Java:多维数组中的连续区域,用于实现一个拉丁方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7862843/