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

时间:2019-09-25 11:42:44

标签: 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 / y: 4

2

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)

enter image description here 然后尝试递归地遍历节点并找到序列,但是由于某种原因它没有起作用。我将调试它,也许会找到一种实现方法,我只是在问是否有一些众所周知的算法可以解决这个问题,或者这不是一项琐碎的任务?

谢谢。

1 个答案:

答案 0 :(得分:0)

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