递归妙招:深度优先搜索 - 搜索技术探秘 (四)
递归的关键在于如何逐步求解。以深度优先搜索 (DFS) 为例,假设我们要在棋盘上放置皇后,代码中 DFS(int r)
函数负责在第 r 行放置皇后。
函数首先检查是否已经放置了所有皇后 (r == n),如果是,则记录找到一个合法棋局并返回。
接下来,函数遍历该行的每一列,检查在当前列放置皇后是否合法 (check(c, r)
)。如果合法,则将皇后放置在该位置 (col[r] = c
),并递归调用 DFS(r+1)
在下一行放置皇后。
2.5MB
文件大小:
评论区