39. 组合总和
- 比较简单,注意这个可以有重复元素,但是依旧不可以是顺序颠倒(以及不可以有重复元素,要注意区别,实际就是startindex的区别)
40.组合总和II
- 不难,但细节很多
- 要求:候选人编号中有重复编号,可用重复编号,但是不能重复使用同一个编号,且最后集合里面组合不可重复
- 所以
startindex
需要注意,从当前i+1
开始 - 要把候选人数组排序后,每次组合前,都要确认该数是否使用过,是否重复,从
startindex
开始检查 -
- 剪枝:由于最开始就将数组排序了,因此每一层计算到
sum+candidates[i]>target
时,就可以break
了,不用继续计算了
- 剪枝:由于最开始就将数组排序了,因此每一层计算到
131.分割回文串
- 没有什么头绪,和组合问题非常像
- 先切割(这个过程和组合问题非常像),切割出所有可能之后再判断是否为回文
- 剪枝,将判断回文逻辑的部分加到单层搜索逻辑里面
- 思路比较复杂,但是实际写起代码来没有很多细节坑,注意切割出来的数组的区间的开闭情况就行