Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 查找NxN矩阵中的所有子矩阵(矩形)_Algorithm_Data Structures - Fatal编程技术网

Algorithm 查找NxN矩阵中的所有子矩阵(矩形)

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这是在图形中查找所有连接组件的问题。 基于零的矩阵元素是“分隔符”,这意味着没有连接,而

给定一个用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

这是在图形中查找所有连接组件的问题。

基于零的矩阵元素是“分隔符”,这意味着没有连接,而非零的相邻元素是连接的

最后,它归结为您的输入。如果您有保证,您将始终获得有效的输入,那么此方法将始终生成有效的输出。

然而,如果您没有这样的保证,那么您需要对发现的连接组件进行简单的后处理,在这里您将验证和过滤每个组件

你试过什么,有什么问题吗?是否要求子矩阵不包含0?2x2矩阵
1 2的结果是什么;3 0
(1下3,2下0)?是的,这是一项要求,我能够使用深度优先搜索找到连接组件的方法,但这不会检查矩形部分,每个子矩阵都必须是矩形。但是@interjay的例子的结果应该是什么?@JuanLopes:它可以是12&3-2个子矩阵,也可以是13&2目标是找到矩形。我知道这些连接的组件。连接的组件不需要是矩形,它可以是任何形状。