Algorithm 查找NxN矩阵中的所有子矩阵(矩形)
给定一个用0和数字(1,2,3…k)填充的NxN矩阵 使得k有一个范围[1,N] 需要找到给定矩阵中的所有子矩阵,即矩形 例如Algorithm 查找NxN矩阵中的所有子矩阵(矩形),algorithm,data-structures,Algorithm,Data Structures,给定一个用0和数字(1,2,3…k)填充的NxN矩阵 使得k有一个范围[1,N] 需要找到给定矩阵中的所有子矩阵,即矩形 例如 2300 1 2 5 0 0 14300 01 1434 那么这个案子呢 我们有3个子矩阵 2 3 4 1.25 1 3 4 14 11 34 找出给定矩阵中所有子矩阵的合适算法是什么? 所有子矩阵应为矩形 例如: 130 2 0 3 020 答案是4个子矩阵 13 三, 二, 2这是在图形中查找所有连接组件的问题。 基于零的矩阵元素是“分隔符”,这意味着没有连接,而
2300
1 2 5 0 0
14300
01
1434 那么这个案子呢 我们有3个子矩阵
2 3 4
1.25
1 3 4 14 11
34 找出给定矩阵中所有子矩阵的合适算法是什么? 所有子矩阵应为矩形 例如: 130
2 0 3 020 答案是4个子矩阵 13 三, 二,
2这是在图形中查找所有连接组件的问题。
基于零的矩阵元素是“分隔符”,这意味着没有连接,而非零的相邻元素是连接的 最后,它归结为您的输入。如果您有保证,您将始终获得有效的输入,那么此方法将始终生成有效的输出。
然而,如果您没有这样的保证,那么您需要对发现的连接组件进行简单的后处理,在这里您将验证和过滤每个组件 你试过什么,有什么问题吗?是否要求子矩阵不包含0?2x2矩阵
1 2的结果是什么;3 0
(1下3,2下0)?是的,这是一项要求,我能够使用深度优先搜索找到连接组件的方法,但这不会检查矩形部分,每个子矩阵都必须是矩形。但是@interjay的例子的结果应该是什么?@JuanLopes:它可以是12&3-2个子矩阵,也可以是13&2目标是找到矩形。我知道这些连接的组件。连接的组件不需要是矩形,它可以是任何形状。