计算矩阵中的组数

时间:2014-11-11 23:31:44

标签: algorithm language-agnostic

我发现了一个有趣的问题。

给出了一个n * m矩阵,其格式如下:

11111111
11111001
11111001
10111111
10111111
11100111
11111111

问题的目标是找到' 0' 0块。在前面的例子中,有3' 0' 0块。

我不明白如何解决这个问题。我不会要求任何代码,我想得到一些关于如何解决这个问题的提示。

2 个答案:

答案 0 :(得分:1)

鉴于你对block的定义: 对于每一行,您检查是否存在两个(或更多)连续的零,如果是这种情况,则对于每个这样的事件,将0的块计数增加1。

您对矩阵的列重复相同的过程。

我不清楚你对问题的描述如何计算更大的块,如:

1 1 1 1
1 0 0 1
1 0 0 1
1 1 1 1

这是一个单独的块吗?

答案 1 :(得分:1)

您可以使用深度优先搜索来查找图形中的连通分量,其中顶点是0的单元格,如果两个单元格相邻,则存在两个顶点之间的边缘。