type
status
date
slug
summary
tags
category
icon
password
创建时间
Mar 7, 2025 06:36 AM
给你一个 m x n 的网格
grid
。网格里的每个单元都代表一条街道。grid[i][j]
的街道可以是:- 1 表示连接左单元格和右单元格的街道。
- 2 表示连接上单元格和下单元格的街道。
- 3 表示连接左单元格和下单元格的街道。
- 4 表示连接右单元格和下单元格的街道。
- 5 表示连接左单元格和上单元格的街道。
- 6 表示连接右单元格和上单元格的街道。
DFS
我一般的 DFS 中定义
dirs
时,是直接定义上下左右。但是在本题中,根据类型不同,有不同的走法。那我们就依据题意,依据类型定义其可走的方向。有了可走的方向,我们就直接套 DFS 模板进行遍历。但是,这里我们发现,直接套用 DFS 模板是不可行的。我们定义了可走方向,直接去下一个邻居,只是表明我们可以去尝试,并不意味着我们就一定可以到达。说白了,我们只是单向确定了我们可以到达下一个邻居,而这个邻居接待不接待是另一回事了。我们需要“双向奔赴”,你情我愿,毕竟“强扭的瓜不甜”。
因此,我们新增一个判断条件。我们发现上下、左右的定义都是符号相反。我们往左移动,就需要下一个邻居有右的通道接受我们。利用这个特性,判断是否“你情我愿”。
另一个版本
参考 看我大华夏 的方案,解决快速定位问题