您的位置:首页 > 其它

一个M*N的矩阵,元素取值1或0,问如何找到最大的正方形,其所有的元素都为1

2015-11-21 21:58 615 查看
文章转自:文章链接

#include <stdio.h>

#define MAX 500
int matrix[MAX][MAX];

int min(int a, int b){
return a < b ? a : b;
}

int main()
{
int max = 1;
int m, n;
scanf("%d%d", &m,&n);
for(int i = 0; i < m; i++)
for(int j = 0; j < n; j++)
scanf("%d", &matrix[i][j]);
for(int i = 1; i < m; i++)
for(int j = 1; j < n; j++)
if(matrix[i][j] == 1)
{
int mmin = min(matrix[i - 1][j], matrix[i][j - 1]);
mmin = min(matrix[i - 1][j - 1], mmin);
matrix[i][j] = mmin + 1;
if(max < matrix[i][j])
max = matrix[i][j];
}
printf("%d", max);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: