回溯
回溯算法 Backtracking
视频二:回溯算法套路②组合型回溯+剪枝【基础算法精讲 15】
视频三:回溯算法套路③排列型回溯+N皇后【基础算法精讲 16】

回溯三问:
1. 当前操作? 2. 子问题? 3. 下一个子问题?


子集型回溯
套路一:本质上每个元素都可以 选/不选
套路二:为避免重复,可人为规定选取顺序(按下标增大的方向,即选了 a[i] 后,之后的选取只能在 [i+1, n) 中选取)。即所谓的【答案视角】指的就是在 [i, n) 中找 “下一个元素选啥”,然后根据该选择继续递归

这题主要是两种模版的得出,其中第二种我觉得比较难想,需要再适应一下。



组合型回溯
注意到组合型回溯就是长度固定的子集型回溯模版二的某一层答案,所以可以进行额外优化,即剪枝






排列型回溯




运用之妙,存乎一心。灵神真是让人高山仰止啊。