跳到正文
信奥逐课

第 120 课

回溯

🔵 基础 约 7 分钟

一句话理解

回溯:走下去试试,不行就退回来改另一条路。

为什么要学

搜索题的核心动作。DFS 填格子几乎都是回溯。

讲解

三步:改状态 → 递归 → 撤销改动。撤销和改动必须配对。

和普通递归的差别是:会尝试多条分支,并且共享同一个状态数组。

例子

vis[x] = 1;
dfs(x);
vis[x] = 0; // 回溯

标记走过,搜索,再擦掉标记,允许别的路径再用这个点。若是图上找连通块,标记就不要擦。看题目要不要重复用。

常见错误

练习 做完再看下一课

回溯最关键的一步是?

在线练习 C++ 在浏览器里编译,代码不会上传

Ctrl / ⌘ + Enter 运行 · Tab 缩进

输出
 

进度保存在本机浏览器里。

左右方向键也可翻课