组合总和
解题思路
利用回溯算法进行遍历,由于数组内的数字可以重复调用,因此在套用模板进行遍历时,下一次递归的startIndex是当前遍历的下标。
剪枝操作则是通过比较和是否大于目标值,如果大于则不进行下一次的递归,以此来减少循环遍历的次数,这个条件需要加到for循环中。
知识点
回溯
心得
注意迭代的起始点位置,以及剪枝操作时需要注意遍历的次数。
组合总和II
解题思路
遇上一题类似,多了一步除重的过程。除重的办法是先将数组排序,之后遍历并迭代回溯函数之后,判断下一个节点是否和当前值相等,如果相等则跳过。
知识点
回溯,除重
心得
利用了之前做题时遇到过除重的方法并和回溯算法结合。
分割回文串
解题思路
分割字符串是回溯算法中一类较为难的题目。由于要求的是分割字符串,所以我们构造N叉树的方法也和以往的数组题目不同。字符串分割的组合是从字符串中不同位置的分割组成的,例如第一个组合是从字符串中第一个字符开始分割,随后其子树则是每次不断向后分割一个,以此类推便能得到所有可能的组合
知识点
回溯
心得
没想到字符串的分割方法,得记下来并多次巩固。
标签:分割,遍历,组合,随想录,回溯,字符串,总和 From: https://www.cnblogs.com/TKK-YLF/p/18300678