我很难在大矩阵 M 和 m=M/2 中找到一些最小的子矩阵 m;
我需要在同一循环中找到子矩阵的数量以找到最小的子矩阵
这是我所做的。
public static void FindSmalSubMatrix(int mat3[][],int rows,int colums)
{
int subm,i,j,temp=0,location1=0,location2=0, min=0;
ArrayList submin = new ArrayList();
if(rows>=colums)
subm=colums/2;
else
subm= rows/2;
min= Firstmin(mat3,subm);
for (i=0;i<rows-subm+1;i++)
for(j=0;j<colums-subm+1;j++)
{
for(int k=i; k <i+subm;k++)
for (int l =j;l<j+subm;l++)
{
temp=temp+ mat3[k][l];
}
if (temp <= min)
{
min=temp;
submin.add(min);
location1=i;
location2=j;
}
temp=0;
}
System.out.println(min+" location is :"+location1+" "+location2);
for( Object value:submin)
System.out.print(value);
}
这是一个例子
6 6 4 4 3
2 2 3 3 8
5 0 2 2 5
4 9 2 1 4
1 6 8 1 3
7 位置是:2 2
161514977
但我需要打印 min =7 Location :1 1
2 3
0 2
最小 =7
位置:2 2
2 2
1 2
如果有人可以帮助我,我将不胜感激。