回溯法学习记录
回溯法本质是暴力搜索的一类方法,对于看到题目中有:组合,分割,子串等关键字或者自己模拟一下搜索过程可以用回溯的就用一下
做题重点:
1.根据题目的要求模拟搜索过程
2.根据模板和逻辑规则写好伪代码
3.调整剪枝
做题经验:
1.选择结果集:根据模拟搜索过程的树状图看是否需要剪枝以及增加结果集的逻辑。
2.剪枝:使用used数组,1代表在本树枝中使用过,0代表之前使用过,注意剪枝去重需要排序。
3.组合,求和:逐个添加
分割字符串,子集:startidx标记遍历位置
4.全排列:由于每次都要遍历整个集合,因此需要初始化一个数组标记是否遍历过,而且
5.针对used数组:根据情况选择是子树内去重还是整棵树去重
6.