Algorithm 如何在网格中找到相邻相等元素的路径

Algorithm 如何在网格中找到相邻相等元素的路径,algorithm,Algorithm,我有一个数字网格。我想找到网格中多个相邻相等元素的所有序列。以下是一个例子: 1 3 5 2 3 3 4 5 2 1 1 5 5 2 5 4 5 2 2 5 4 1 2 2 5 在这个例子中,我正在寻找一种方法来找到5和2的序列(不是说应该有两个5的序列): 5.1 x: 2 / y: 0 x: 2 / y: 1 x: 2 / y: 2 x: 1 / y: 2 x: 1 / y: 3 5.2 x: 4 / y: 2 x: 4 / y: 3 x: 4 /

我有一个数字网格。我想找到网格中多个相邻相等元素的所有序列。以下是一个例子:

1  3  5  2  3
3  4  5  2  1
1  5  5  2  5
4  5  2  2  5
4  1  2  2  5
在这个例子中,我正在寻找一种方法来找到5和2的序列(不是说应该有两个5的序列):

5.1

x: 2 / y: 0
x: 2 / y: 1
x: 2 / y: 2
x: 1 / y: 2
x: 1 / y: 3
5.2

x: 4 / y: 2
x: 4 / y: 3
x: 4 / y: 4
x: 3 / y: 0
x: 3 / y: 1
x: 3 / y: 2
x: 3 / y: 3
x: 3 / y: 4
x: 2 / y: 3
x: 2 / y: 4
2

x: 4 / y: 2
x: 4 / y: 3
x: 4 / y: 4
x: 3 / y: 0
x: 3 / y: 1
x: 3 / y: 2
x: 3 / y: 3
x: 3 / y: 4
x: 2 / y: 3
x: 2 / y: 4
我试着把矩阵放在二叉树中。大概是这样的:

Node (0x0)
  value: 1
  right: Node (1x0)
            value: 3
            right: Node (2x0)
                      value: 5
                      right: Node (3x0)
                      down: Node (2x1)
            down: Node (1x1)
                     value: 4
                     right: Node (2x1)
                     down: Node (1x2)
  down: Node (0x1)
            value: 3
            right: Node (1x1)
            down: Node (2x0)
然后尝试递归地遍历节点并找到序列,但由于某种原因,它不起作用。我会调试它,也许会找到一种方法来做,我只是想问,是否有一些著名的算法来做这样的事情,或者这不是一个简单的任务


谢谢。

如果只连接具有相同值的单元格,这将变得简单得多。图形中不应有其他边。然后,只需计算每个子图中的节点数。

看起来您感兴趣的是找到一个图的连接组件,该组件的节点是网格单元,其边连接包含相同值的相邻单元。“…但由于某种原因它不起作用”-什么不起作用?您已经发布了EXEPCED结果,但您实际得到了什么?(我的猜测是,您需要将已处理的单元格标记为已访问。)欢迎使用StackOverflow。请按照您创建此帐户时的建议,阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确指定问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到文本文件中,并重现您指定的问题。