39. 组合总和
combination 模版题了,每次递归用一个 start index 去标记本次递归开始的位置,这是因为 combination 不记录顺序,否则就得用 used array 喽
40.组合总和II
关键在于去重,pruning。
去重:每一层递归会遇到重复情况比如 [1,2,2,3] 有两个 [1,2],这时候需要进行去重复,方法就是本层放入的元素不是重复元素,因为在 backtracking 的时候,实际上就是在每层尝试不同的元素,我只要保证该层不会放入重复元素就就行了~
131.分割回文串
这题有难度... 我的方法对于每层递归,实际上都是在切割字符串,那么对于下一层递归呢,实际上就是对于切割剩下的字符串再进行切割,此时在每层切割时需要注意下面几点:
- 切割的字符串是否是回文的;2.每层切割都是切割上一层切割剩下的substring,因此需要有一个 start index 来保证切割的起始位置正确