Вхідні дані
Дошка: 2D контейнер (матриця, список списків тощо) літер типу:
["B", "C", "C", "C", "C", "B", "B", "C", "A", "A"],
["B", "A", "C", "B", "B", "A", "B", "B", "A", "A"],
["B", "C", "B", "C", "A", "A", "A", "B", "C", "B"],
["B", "B", "B", "A", "C", "B", "A", "C", "B", "A"],
["A", "A", "A", "C", "A", "C", "C", "B", "A", "C"],
["A", "B", "B", "A", "A", "C", "B", "C", "C", "C"],
["C", "B", "A", "A", "C", "B", "B", "C", "A", "A"]
Якщо ви вибираєте список списків, ви можете припустити, що всі підлісти однакової довжини.
Правила
- Щоб зробити дійсний прямокутник, вам потрібні всі кути прямокутника з однаковою літерою.
- Наприклад, подивіться таблицю зразка з X нижче. Ви можете бачити "X" на (1,0) також на (4,0) також на (1,3) і на (4,3), тоді у вас є перерахунок [1,0,4,3], що означає від (1,0) до (4,3):
Дошка для зразка з X :
["B", "X", "C", "C", "X", "B", "B", "C", "A", "A"],
["B", "A", "C", "B", "B", "A", "B", "B", "A", "A"],
["B", "C", "B", "C", "A", "A", "A", "B", "C", "B"],
["B", "X", "B", "A", "X", "B", "A", "C", "B", "A"],
["A", "A", "A", "C", "A", "C", "C", "B", "A", "C"],
["A", "B", "B", "A", "A", "C", "B", "C", "C", "C"],
["C", "B", "A", "A", "C", "B", "B", "C", "A", "A"]
- Мета - знайти прямокутник або один з прямокутників з найбільшою площею, обчислений (праворуч-ліворуч + 1) * (знизу вгорі + 1)
- Якщо є кілька прямокутників з однаковою максимальною площею, виведіть будь-який. За бажанням той, який (верхня координата, ліва координата, права координата, нижня координата) лексикографічно найменший.
- Прямокутники повинні мати краї, паралельні краю дошки.
- Кожна літера - це друкована таблиця ASCII від А до Я (обидва входять в комплект).
Вихідні дані
Вихід повинен бути ліворуч і праворуч вниз, кути найбільшого за площею прямокутника. Для першого зразка «дошки» великий квадрат - жовтий:
І відповідь повинна бути:
[1, 1, 8, 4]
Другий приклад тестового випадку
Вхід:
["C", "D", "D", "D", "A", "A"],
["B", "D", "C", "D", "A", "A"],
["B", "D", "D", "C", "A", "C"],
["B", "D", "B", "C", "A", "C"]
Потрібно отримати один із цих трьох координатних списків, що ідентифікують область із шістьма прямокутниками:
[1, 0, 2, 2]
[1, 0, 3, 1]
[3, 2, 5, 3]
Це запитання розміщено у "Переповнення стека" із заголовком: Як знайти найбільший прямокутник у двовимірному масиві, утвореному чотирма однаковими кутами? і з цим грубим рішенням JS (я можу сказати "грубим", тому що це мій код;):
Гаразд, це моя перша посада, будьте толерантні зі мною, будь ласка. Я зміню все, що ви кажете, щоб покращити вікторину.
((left,top),(right,bottom))
має бути добре. Я видалив свою відповідь і знову відповів, коли питання повністю уточнено.