给定NxN矩阵填充0& s&数字(1,2,3 .... k)的 这样k的范围为[1,N]。
需要找到所有子矩阵,即给定矩阵中的矩形。
E.g。
2 3 4 0 0
1 2 5 0 0
1 3 4 0 0
0 0 0 1 1
1 4 0 3 4
所以对于这种情况
我们有3个子矩阵
2 3 4
1 2 5
1 3 4
1 4
1 1
3 4
找出给定矩阵中所有子矩阵的合适算法是什么?
所有子矩阵都应该是一个矩形
例如:
1 3 0
2 0 3
0 2 0
答案是4个子矩阵
1 3
3
2
2
答案 0 :(得分:1)
这是在图表中查找所有连接组件的问题 https://en.wikipedia.org/wiki/Connected_component_%28graph_theory%29
基于零的矩阵元素是“分隔符”,意味着没有连接,而非零相邻元素是连接的。
最后,归结为你的意见。如果您有保证,您将始终获得有效输入,则此方法将始终生成有效输出 但是,如果没有这样的保证,那么您将需要对发现的连接组件进行简单的后处理,您将在其中验证并过滤每个组件。