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的个数只用求最大的,行方向上,它后面的,可以推算出来
程序代码随后补充。
算法分析:
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的个数只用求最大的,行方向上,它后面的,可以推算出来
程序代码随后补充。
相关文章推荐
- 【二分查找最优解】FZU 2056 最大正方形
- DP---求给定矩阵中最大正方形的维度
- 解决矩阵中一行含有多个相同最大值的鞍点查找法
- bzoj1057(洛谷1169)最大01子矩阵和最大01子正方形
- 在矩阵中寻找最大正方形连续区域
- wikioi 1259 最大正方形子矩阵
- 【BZOJ1057】【ZJOI2007】棋盘制作 最大01子矩阵/正方形
- 2D矩阵求最大正方形子矩阵,各项元素为1
- 一个M*N的矩阵,元素取值1或0,问如何找到最大的正方形,其所有的元素都为1
- 01矩阵最大正方形
- 一个M*N的矩阵,元素取值1或0,问如何找到最大的正方形,其所有的元素都为1
- [LeetCode] 01矩阵中最大正方形 Maximal Square
- 最大子段和||最大子矩阵和||最大全1子矩阵||最大全1子正方形||
- 查找 矩阵中行与列中均为最大或者最小的数
- LeetCode: 221_Maximal Square | 二维0-1矩阵中计算包含1的最大正方形的面积 | Medium
- 最大子段和||最大子矩阵和||最大全1子矩阵||最大全1子正方形||
- 【难】【DP】计算bool矩阵中,仅包含1的最大矩形和最大正方形
- vojos 1055,1057 最大子矩阵、正方形
- 经典面试题:求数组的最大子序列和;实现函数 :判断一个自负喜欢是否是另一个字符串旋转所得;杨氏矩阵中查找一个数。
- 矩阵动归--最大正方形