250119
课堂小结:dfs 可用于搜索连通块大小,暴力枚举所有情况等。dfs 在网格中的写法:
dir = [(0, 1), (1, 0), (-1, 0), (0, -1)]
def dfs(x, y):
global area
area += 1
vis[x][y] = True
for dx, dy in dir:
tx, ty = x+dx, y+dy
if 0 <= tx <= n -1 and 0 <= ty <= n-1 and a[tx][ty] == '#' and not vis[tx][ty]:
dfs(tx, ty)
和 bfs 类似,枚举 4 个方向。搜索连通块和枚举所有情况时都要注意,判断每个状态是否已经走过,可用二维数组或者 set 判断.