题目描述
在一个 n * m 的只包含 0 和 1 的矩阵里找出一个不包含 0 的最大正方形,输出边长。
输入描述
输入文件第一行为两个整数 n , m( 1 <= n , m <= 100 ),接下来 n 行,每行 m 个数字,用空格隔开,0 或 1 .
输出描述
一个整数,最大正方形的边长。
输入样例
4 4
0 1 1 1
1 1 1 0
0 1 1 0
1 1 0 1
输出样例
2
由于本题为 0、1 矩阵,因此可以考虑用前缀和的方法来做。若某区域内的数字之和恰好等于该区域的面积大小,则说明该区域内的数字皆为 1 ,满足题目要求。因此可以令边长从 1 开始循环直到该矩阵的宽度,当查找到该边长的正方形符合题意时,则更新答案。
参考代码
#include <algorithm>
#