美文网首页
leetcode-day24-回溯法

leetcode-day24-回溯法

作者: 独孤蝴蝶 | 来源:发表于2023-07-03 08:55 被阅读0次

组合总和

题解:

此题和前面的组合问题不同之处是,可以重复取同一个数字,不限制

1.递归函数的参数

题目给定的集合candidates以及目标值target,题目中是在求和,参数sum_, 记录遍历位置的参数startindex,

2.终止条件

当和sum_大于target以及等于的时候终止继续向下遍历,不过等于的情况需要收集结果

3.单层遍历逻辑

横向依然for循环遍历,每次都将集合candidates中的值进行相加,并放入到path中,但是递归的时候不同之处在于,startindex处,不再加一

代码:

组合总和ii

题解

此题和之前的题目有个区别就是,给定的集合中有重复的数字,那就涉及到去重的问题,当然同一个数字也只能使用一次,在此我们使用一个数组used来去重,长度和集合长度相等

1.方法的参数

题目中给定的集合以及目标值target,因为要求的是和,所以需要传入一个和sum_,以及记录遍历位置的startindex,还有就是used

2.终止条件

就是和sum_大于target,以及等于target时终止,当然等于的情况是收集满足的结果

3.单层搜索逻辑

要去重的是“同一树层上使用过”,如果candidates[i] == candidates[i - 1] 并且 used[i - 1] == False,就说明:前一个树枝,使用了 candidates[i - 1] ,也就是说同一树层使用过candidates[i - 1] 。此时就continue

代码:

分割回文串

题解:

切割问题类似为组合问题:

例如:abcdef

组合问题:选取一个a后,在bcdef中再去选取第二个,选取b之后再选取第三个

切割问题:切割一个a之后,在bcdef中再去切割第二段,切割b之后再切割第三段

抽象成一棵树形结构

1.递归函数参数

题目中给定的字符串,记录切割的位置的startindex

当然还有path,以及结果集result

2.终止条件

切割都了字符串的最后面,找到了一种切割方法,那就是终止,也就是startindex == len(s)

3.单层搜索逻辑

在此有个判断回文的,什么是回文,就是从前往后,从后向前,前后对应的元素相等,则为回文

我们遍历的是整个字符串

代码:

相关文章

  • N皇后

    回溯法核心代码: n皇后问题回溯法

  • 简单的谈谈dfs

    简单的说回溯法,递归就是将函数负责几遍。那么回溯法就是将for循环复制几遍。回溯法框架 为什么要把list的最后一...

  • 算法08-回溯法:面试最常见问题

    算法08-回溯法:面试最常见问题 一、介绍 回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜...

  • 回溯法与分支限界法

    回溯法与分支限界法 时间 2016-03-24 标签 搜索 回溯法 1、概念 回溯算法实际上一个类似枚举的搜索尝...

  • LeetCode之回溯算法

    回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。因为回溯的本质是穷举,穷...

  • 小朋友学经典算法(14):回溯法和八皇后问题

    一、回溯法 回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步...

  • 算法的设计思想2

    4,回溯法 回溯法是一种优化的穷举法。所谓穷举法就是穷举问题的所有可能性,直到发现解决问题的最佳解为止。回溯法会有...

  • 算法理论 | 回溯法

    回溯法 回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并...

  • 78. Subsets

    经典的回溯法

  • 491. Increasing Subsequences

    典型的回溯法

网友评论

      本文标题:leetcode-day24-回溯法

      本文链接:https://www.haomeiwen.com/subject/clcfudtx.html