1 と 0 でいっぱいの巨大なファイルで、1 の最大の正方形を見つける必要があります。動的計画法を使用する必要があることはわかっています。私はそれを2D配列に格納しています。最大の正方形を見つけるためのアルゴリズムの助けは素晴らしいでしょう、ありがとう!
入力例:
1 0 1 0 1 0
1 0 1 1 1 1
0 1 1 1 1 1
0 0 1 1 1 1
1 1 1 1 1 1
答え:
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
これまでの私のコード:
int Square (Sq[int x][int y]) {
if (Sq[x][y]) == 0) {
return 0;
}
else {
return 1+MIN( Sq(X-1,Y), Sq(X,Y-1), Sq(X-1,Y-1) );
}
}
(すでに配列に値が入力されていると仮定します)
int main() {
int Sq[5][6]; //5,6 = bottom right conner
int X = Square(Sq[5][6]);
}
そこからどうやって行くの?