1.行列を表す 2D 配列があります。最大の合計を持つ正方部分行列を見つける必要があります。サブマトリックスのサイズは、行または列の数を 2 で割ったものです。たとえば、これがある場合
9 3 5 9
2 5 9 8
8 4 9 7
9 5 3 9
最大のサブマトリックスは
9 8
9 7
総和が一番大きいからです。
2.次に、順列を持つ最大の部分行列を見つける必要があります。つまり、サブマトリックスの形状を持つ最大の数字 (同じ列または同じ行に少なくとも 2 つの数字) を選択する必要があります。たとえば、斜めのエッジにある 4 つのナイン
9 9
9 9
しかし、行列の形をしているため、最初の行を取得して行列を作成することはできません。
私はまだそれに苦労しているので、助けてください。
これが私のコードで、submはサブマトリックスのサイズです
for (i=0;i<rows-subm;i++){
for(j=0;j<colums-subm;j++)
{
temp=pic[i][j]+pic[i][j+1]+pic[i+1][j]+pic[i+1][j+1];
if(temp > summax)
summax=temp;
}
}