5814. Портящиеся фрукты
Medium
0 решили
В ящике фрукты лежат сеткой
Каждую минуту каждый испорченный фрукт портит свежие в четырёх соседних клетках: вверх, вниз, влево и вправо. По диагонали порча не переходит. Пустая клетка не портится и порчу не проводит. Фрукт, который испортился в эту минуту, заражает соседей только со следующей.
Верните, через сколько минут свежих не останется. Если хотя бы один свежий фрукт так и не испортится, верните
grid. 0 — пустая клетка, 1 — свежий фрукт, 2 — уже испорченный.Каждую минуту каждый испорченный фрукт портит свежие в четырёх соседних клетках: вверх, вниз, влево и вправо. По диагонали порча не переходит. Пустая клетка не портится и порчу не проводит. Фрукт, который испортился в эту минуту, заражает соседей только со следующей.
Верните, через сколько минут свежих не останется. Если хотя бы один свежий фрукт так и не испортится, верните
-1. Если свежих нет с самого начала, ответ 0.Примеры:
Вход:
grid = [[2, 1, 1], [1, 1, 0], [0, 1, 1]]
Выход:
4
Объяснение: Порча от левого верхнего угла доходит до правого нижнего за четыре минуты.
Вход:
grid = [[2, 1, 1], [0, 1, 1], [1, 0, 1]]
Выход:
-1
Объяснение: Нижний левый фрукт окружён пустыми клетками и не граничит с порчей даже по диагонали.
Вход:
grid = [[0, 2]]
Выход:
0
Объяснение: Свежих нет, ждать нечего.
Ограничения:
1 <= grid.length <= 50
1 <= grid[0].length <= 50
строки одной длины
grid[r][c] — одно из 0, 1, 2
Решите эту задачу в браузере
Создайте бесплатный аккаунт — редактор Python и Java, проверка на тестах за секунды.
Комментарии (0)
Зарегистрируйтесь или войдите, чтобы оставить комментарий
Пока нет комментариев. Будьте первым!