这道题目可以用搜索算法来解决。
建立一个二维矩阵表示这个格子矩阵,先将障碍区设为不能通过,然后从起点开始进行搜索,每次向上下左右四个方向拓展。
每拓展一个格子,就将当前的时间加 1,并记录在这个格子的时间上。当搜索到终点时,输出最大的时间差即可。
下面是 Python 代码的实现:
```python
用于存储格子矩阵的二维矩阵
grid = []
用于记录起点到每个格子的时间
time_grid = []
初始化二维矩阵和时间矩阵
for i in range(n): grid.append([0] * n) time_grid.append([-1] * n)
将障碍区设为不能通过
for i in range(m): x, y = map(int, input().split()) grid[x][y] = 1
定义四个方向的偏移量
dx = [0, 0, 1, -1] dy = [1, -1, 0, 0]
定义起点的坐标和时间
x, y, t = 0, 0, 0
将起点加入队列中
q = [(x, y, t)]