我有一个数字网格。我想找到网格中不止一个相邻的相等元素的所有序列。这是一个示例:
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)
然后尝试递归地遍历节点并找到序列,但是由于某种原因它没有起作用。我将调试它,也许会找到一种实现方法,我只是在问是否有一些众所周知的算法可以解决这个问题,或者这不是一项琐碎的任务?
谢谢。
答案 0 :(得分:0)
如果仅连接 具有相同值的那些单元,这将变得更加简单。图形中不应有其他边。然后,只需计算每个子图中的节点数即可。