代码随想录day 23 组合总和 | 组合总和II | 分割回文串

组合总和

组合总和

解题思路

利用回溯算法进行遍历,由于数组内的数字可以重复调用,因此在套用模板进行遍历时,下一次递归的startIndex是当前遍历的下标。
剪枝操作则是通过比较和是否大于目标值,如果大于则不进行下一次的递归,以此来减少循环遍历的次数,这个条件需要加到for循环中。

知识点

回溯

心得

注意迭代的起始点位置,以及剪枝操作时需要注意遍历的次数。

组合总和II

组合总和II

解题思路

遇上一题类似,多了一步除重的过程。除重的办法是先将数组排序,之后遍历并迭代回溯函数之后,判断下一个节点是否和当前值相等,如果相等则跳过。

知识点

回溯,除重

心得

利用了之前做题时遇到过除重的方法并和回溯算法结合。

分割回文串

分割回文串

解题思路

分割字符串是回溯算法中一类较为难的题目。由于要求的是分割字符串,所以我们构造N叉树的方法也和以往的数组题目不同。字符串分割的组合是从字符串中不同位置的分割组成的,例如第一个组合是从字符串中第一个字符开始分割,随后其子树则是每次不断向后分割一个,以此类推便能得到所有可能的组合

知识点

回溯

心得

没想到字符串的分割方法,得记下来并多次巩固。

posted @ 2024-07-13 20:45  不进育碧不改名  阅读(147)  评论(0编辑  收藏  举报