garden размером m × n:
- 0 — клетка непроходима (пруд, грядка);
- 1 — свободная клетка, по ней можно ходить;
- число больше 1 — клетка с кустом, по ней тоже можно ходить; число — высота куста.
За один шаг садовник переходит в соседнюю клетку вверх, вниз, влево или вправо. Стоя на клетке с кустом, он может его подрезать — после этого клетка становится 1. Кусты нужно подрезать строго по возрастанию высоты, начиная с самого низкого; проходить мимо куста, не подрезая его, можно.
Садовник начинает в клетке (0, 0). Верните наименьшее число шагов, за которое он подрежет все кусты, или -1, если до какого-то куста не добраться. Если кустов нет, ответ 0.garden=[[1, 4, 1], [0, 0, 2], [3, 1, 1]] → 11
Сначала куст высотой 2: путь (0,0) → (0,1) → (0,2) → (1,2), 3 шага. Затем куст 3 в (2,0): (1,2) → (2,2) → (2,1) → (2,0), ещё 3 шага. Последний куст 4 в (0,1): обратно до (1,2) 3 шага и ещё 2 — итого 3 + 3 + 5 = 11.
garden=[[5, 1], [0, 0], [2, 3]] → -1
Кусты 2 и 3 отрезаны непроходимым рядом, до них не дойти.
garden=[[2, 1, 3]] → 2
Куст 2 стоит на стартовой клетке — его подрезаем сразу, без шагов. Затем 2 шага до куста 3.
garden=[[1, 4, 1], [0, 0, 2], [3, 1, 1]]
11
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 99 тестов на сервере, включая скрытые.