代码随想录-day24
组合总和
原始版本
给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。
1 | class Solution: |
总的来说,就是回溯的模板,只是在递归的过程中,需要判断一下是否超过了目标值,如果超过了,就直接返回。如果等于目标值,就将当前路径加入结果集中。然后因为可以重复使用元素,所以递归的索引从当前索引开始(不用i+1)。
排序加剪枝
1 | class Solution: |
组合总和II
给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。
1 | class Solution: |
这道题关键在于区分树枝重复和树层重复,叶子可以和父节点相同,但是不能跟兄弟相同(包括每一个根节点)
分割回文串
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。
1 | class Solution: |
就是用递归加回溯把所有切割方式列出来返回是回文的内容