返回首页

回溯 高频追问 Q&A

1. Q: 回溯和暴力枚举区别?

A: 回溯是带剪枝的系统枚举,能提前砍掉无效分支。

2. Q: 组合、排列、子集模板差异?

A: 组合靠 start 控制顺序;排列靠 used 防重复;子集每层先收集路径。

3. Q: 去重常见写法?

A: 排序 + 同层去重(i > start && nums[i] === nums[i-1])。

4. Q: 剪枝怎么设计?

A: 用上下界估计、剩余可选数量判断、约束冲突立即返回。

5. Q: N 皇后为何效率高于纯暴力?

A: 列与对角线冲突可 O(1) 检查,显著剪枝。

6. Q: 回溯复杂度怎么答?

A: 一般按“分支因子^深度”估算,再说明剪枝后实际会更小。