08-回溯算法
type
status
date
slug
summary
tags
category
icon
password
回溯算法(Backtracking Algorithm)是一种通过试探性递归搜索的算法思想,常用于解决组合、排列、子集、分割、路径搜索等问题。
回溯法是递归的扩展,在递归的过程中进行「剪枝」,一旦发现当前选择无法达到目标就回退到上一步重新尝试其他分支。
- 排序 + 跳过重复元素
- 提前判断是否可行(如组合中剩余元素不足)
- 位运算优化状态存储(如 N 皇后)
子集(LeetCode 78)
全排列(LeetCode 46)
组合(LeetCode 77)
N 皇后(LeetCode 51)
问题类型 | 是否适用回溯 |
所有可能的解 | ✅ (子集、组合、排列) |
约束满足问题(如 N 皇后) | ✅ |
需要枚举并筛选 | ✅ |
有剪枝条件 | ✅ |
有唯一解/最优解 | ❌ 更适合动态规划、贪心、二分 |
上一篇
07-分治算法
下一篇
01-JVM类加载机制
Loading...