0 1 矩阵查找最大正方形

本文介绍了一种算法,用于在一个由0和1组成的矩阵中找到最大的全由1构成的正方形。通过逐行扫描非0元素来确定连续1的数量,并在列方向上进一步分析可能的最大正方形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:一个由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的个数只用求最大的,行方向上,它后面的,可以推算出来


程序代码随后补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值