Ctrl K

Прямоугольные поля на карте

Средняя
Карта участка задана таблицей plan из нулей и единиц: 1 — пашня, 0 — лес. Пашня образует отдельные поля, и каждое поле — сплошной прямоугольник. Разные поля не соприкасаются сторонами: между ними всегда есть лес (касание по диагонали возможно). Для каждого поля верните список [r1, c1, r2, c2], где (r1, c1) — строка и столбец его левой верхней клетки, а (r2, c2) — правой нижней (нумерация с нуля). Поля можно перечислить в любом порядке. Если пашни нет, верните пустой список.
Пример 1
plan=[[1, 1, 0, 1], [1, 1, 0, 0], [0, 0, 0, 1]] → [[0, 0, 1, 1], [0, 3, 0, 3], [2, 3, 2, 3]]

Три поля: квадрат 2×2 с углами (0, 0) и (1, 1) и два поля из одной клетки, (0, 3) и (2, 3).

Пример 2
plan=[[0, 1, 1, 1]] → [[0, 1, 0, 3]]

Одно поле в строке 0 со столбца 1 по столбец 3.

Пример 3
plan=[[0, 0], [0, 0]] → []

Сплошной лес, полей нет.

Ограничения
  • 1 ≤ len(plan), len(plan[0]) ≤ 300
  • каждая клетка равна 0 или 1
  • каждое поле — сплошной прямоугольник, поля не соседствуют по стороне
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиОсушение замкнутых прудов СредняяУчастки суши на карте СредняяДождь стекает в оба моря СредняяОстановится ли шарик в цели СредняяКратчайший путь катящегося шарика Средняя
загружаем Python…
Вход
plan=[[1, 1, 0, 1], [1, 1, 0, 0], [0, 0, 0, 1]]
Ожидается
[[0, 0, 1, 1], [0, 3, 0, 3], [2, 3, 2, 3]]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 49 тестов на сервере, включая скрытые.