有一个m*n的矩阵A,每个元素都是大于等于0的正整数,取值0到12,对于每

2024年11月28日 17:55
有1个网友回答
网友(1):

假设存有矩阵的是int mat[][]
1.对每行分别计算该行某个元素之后有多少个连续的0(包括它本身),记录进数组int a[][]中
比如mat[0][0]、mat[0][1]、...、mat[0][10]都是0,而mat[0][11]是1,那么记录a[0][0]=11,a[0][1]=10,...,a[0][10]=1,a[0][11]=0
这个步骤用循环次数为m*n的双层循环即可实现
2.枚举所滑桐求矩阵的左上角坐标,然后枚举这个矩阵的行数,利用之前记录的a数组可知这个矩阵的列数,如此得到一个左上团肆角坐标和行数已知的尽可能大的全0子矩阵塌让轿,然后判断这个子矩阵大小是否最大的,是则记录
代码大致如下
for (i=0;i