文章链接: 39. 组合总和、 40.组合总和II、 131.分割回文串
39.组合总和
思路:
此题与前面组合相关题目的区别是,可以有重复的数组元素。
与前面题目代码的区别就是 “递归部分” ,backtracking(candidates, target, sum, i); 中用 i ,而不用 i+ 1表示可以重复读取当前的数。
剪枝思路:
如果 sum + candidates[i] > target 就终止遍历。
整体代码:
40.组合总和II
思路:
与上题的区别:
1.每个数字在每个组合中只能使用 一次;
2.所给数组是可能包含有重复元素的;
注意:解集中要注意去除重复的集合;
理解:
一个for循环表示树的分支;
一个递归表示树的深度;
131.分割回文串
思路:
1.递归函数(深度):移动指向字符串开始指针;
2.for循环(宽度):移动截取字串的结束指针;