您的位置:首页 > 其它

0 1 矩阵查找最大正方形

2017-09-23 09:33 288 查看
题目:一个由0 1 矩阵组成的矩阵,如何标记处其中最大的全由1组成的正方形

算法分析:

0.从square的一个顶点考虑这个问题。从这个顶点横向看,是连续的N个1;从N个1组成的行往下看,是N个全是1的行。

1.以矩阵中所有的非0元素位置开始行扫描,找出连续的1的个数,并赋值给该位置,形成标记行方向连续1个数的中间矩阵

2.从中间矩阵的非0元素位置开始进行列扫描,分析可能出现的最大矩阵。分析的因素:一是元素大小,即行方向上连续1的个数;

二是列方向上,相邻元素的大小。三是列方向上连续非0元素的个数。四是找出最大最小值。五是优化算法,减少计算量。最后输出

每一元素位置上标记的以它为顶点的最大square大小的square矩阵

3.找出square矩阵的最大值,并标记位置

4.可以对square矩阵绘制成图或者写入excel,并在其中标识出最大square

算法优化:

1.是0就break

2.步骤1中,连续的1的个数只用求最大的,行方向上,它后面的,可以推算出来

程序代码随后补充。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: