Этот вопрос похож на 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
Это Код-гольфТаким образом, самый короткий ответ в байтах побеждает.