当前位置:   article > 正文

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

生成m*n的元素均为1

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

  1. #include <stdio.h>
  2. #define MAX 500
  3. int matrix[MAX][MAX];
  4. int min(int a, int b){
  5. return a < b ? a : b;
  6. }
  7. int main()
  8. {
  9. int max = 1;
  10. int m, n;
  11. scanf("%d%d", &m,&n);
  12. for(int i = 0; i < m; i++)
  13. for(int j = 0; j < n; j++)
  14. scanf("%d", &matrix[i][j]);
  15. for(int i = 1; i < m; i++)
  16. for(int j = 1; j < n; j++)
  17. if(matrix[i][j] == 1)
  18. {
  19. int mmin = min(matrix[i - 1][j], matrix[i][j - 1]);
  20. mmin = min(matrix[i - 1][j - 1], mmin);
  21. matrix[i][j] = mmin + 1;
  22. if(max < matrix[i][j])
  23. max = matrix[i][j];
  24. }
  25. printf("%d", max);
  26. return 0;
  27. }


声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号