Мне нужно найти наибольший квадрат из 1 в гигантском файле, полном 1 и 0. Я знаю, что мне нужно использовать динамическое программирование. Я храню его в 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]);
}
Как я могу продолжать дальше?