Задача 11: Плавание в поднимающейся воде

Напишите определение функции swimInWater(grid), которая принимает один аргумент: grid — матрицу целочисленных значений размера m x n, где каждое значение grid[i][j] представляет собой высоту в точке (i, j).

Начинается дождь. В момент времени t глубина воды везде равна t. Вы можете плыть из одной клетки в другую в четырех направлениях (вертикально или горизонтально), если их высоты не превышают t. Вы можете проплыть бесконечное расстояние за нулевое время. Вы не можете выплыть за пределы границы матрицы.

Верните минимальное время t, необходимое для достижения клетки в нижнем правом углу (n - 1, n - 1) из клетки в верхнем левом углу (0, 0).


Пример 1:

Ввод:
grid = [[0,2],[1,3]]
Вывод:
3

Пояснение:
В момент времени 0 вы находитесь в клетке (0, 0).
Вы не можете никуда плыть, так как соседи в четырех направлениях (вертикальные или горизонтальные) имеют высоту выше, чем t = 0.
Вы не сможете достичь клетки (1, 1) до момента времени 3.
Когда глубина воды достигнет 3, можно будет плыть в любом месте в пределах матрицы.


Пример 2:

Ввод:
grid = [[0,1,2,3,4],[24,23,22,21,5],[12,13,14,15,16],[11,17,18,19,20],[10,9,8,7,6]]
Вывод:
16

Пояснение:
Показан конечный маршрут.
Нам нужно дождаться момента времени 16, чтобы клетки (0, 0) и (4, 4) были соединены.

0

Вы должны Войти или Зарегистрироваться чтобы оставлять комментарии