grid размером m × n: 0 — свободная клетка, 1 — стена. Всё за пределами сетки тоже считается стеной.
В клетке start = [row, col] лежит шарик. Его можно толкнуть вверх, вниз, влево или вправо, и он катится по свободным клеткам, пока не упрётся в стену. Только остановившись, шарик можно толкнуть снова, в любую сторону.
Длина пути — число клеток, через которые прокатился шарик, считая все толчки: стартовая клетка не считается, клетка остановки считается. Верните наименьшую длину пути, после которого шарик остановится ровно в клетке target = [row, col], или -1, если остановить его там нельзя.grid=[[0, 0, 0], [1, 1, 0], [0, 0, 0]], start=[0, 0], target=[2, 0] → 6
Вправо на 2 клетки до [0, 2], вниз на 2 до [2, 2], влево на 2 до [2, 0]: всего 6.
grid=[[0, 0, 1], [0, 0, 0], [1, 0, 0]], start=[0, 0], target=[2, 2] → 4
Например: вправо на 1 до [0, 1] (дальше стена), вниз на 2 до [2, 1], вправо на 1 до [2, 2] — итого 4. Короче не получится.
grid=[[0, 0, 0], [0, 0, 0], [0, 0, 0]], start=[0, 0], target=[1, 1] → -1
В центре пустой сетки шарик остановиться не может.
grid[i][j] равно 0 или 1start и target — свободные клетки внутри сетки, и они не совпадаютgrid=[[0, 0, 0], [1, 1, 0], [0, 0, 0]], start=[0, 0], target=[2, 0]
6
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 58 тестов на сервере, включая скрытые.