Этот вопрос похож на Biggest Square в сетке .
Вызов
Учитывая матрицу 1и 0в строковом формате "xxxx,xxxxx,xxxx,xx.."или формате массива ["xxxx","xxxx","xxxx",...], Вы создадите функцию, которая определяет область самой большой квадратной подматрицы, которая содержит все 1.
Квадратная подматрица имеет одинаковую ширину и высоту, и ваша функция должна возвращать область самой большой подматрицы, которая содержит только 1.
Например:
Учитывая "10100,10111,11111,10010", это выглядит как следующая матрица:
1 0 1 0 0
1 0 1 1 1
1 1 1 1 1
1 0 0 1 0
Вы можете видеть выделенную жирным шрифтом 1самую большую квадратную подматрицу размером 2x2, поэтому ваша программа должна вернуть область, которая равна 4.
правила
- Подматрица должна быть одинаковой ширины и высоты
- Подматрица должна содержать только значения
1 - Ваша функция должна вернуть область наибольшей подматрицы
- Если подматрица не найдена, вернуть
1 - Вы можете рассчитать площадь подматрицы, посчитав количество
1в подматрице
Контрольные примеры
Вход: "10100,10111,11111,10010" Выход: 4
Вход: "0111,1111,1111,1111" Выход: 9
Входной "0111,1101,0111" Выход: 1
Это Код-гольфТаким образом, самый короткий ответ в байтах побеждает.