回溯回溯就是暴力枚举,最多再做点剪枝。 回溯的递归韩式有个模板,一般无返回值代表搜索所有结果 123456789101112void backtracking(参数) { if (终止条件) { 存放结果; return; } for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) { 处理节点; backtracking(路径,选择列表); // 递归 回溯,撤销处理结果 }} 组合问题:N个数里面按一定规则找出k个数的集合 排列问题:N个数按一定规则全排列,有几种排列方式 切割问题:一个字符串按一定规则有几种切割方式 子集问题:一个N个数的集合里有多少符合条件的子集 棋盘问题:N皇后,解数独等等 http://willxu0313.github.io/2025/02/15/算法题/回溯/ 作者 Will 发布于 2025年2月15日 许可协议 上一篇 下一篇