![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
回溯
文章平均质量分 78
leetcode题目分类--回溯
m0_38142029
这个作者很懒,什么都没留下…
展开
-
[回溯 字符串] 282. 给表达式添加运算符(回溯法:考虑乘法优先级)
[回溯 字符串] 282. 给表达式添加运算符(回溯法:考虑乘法优先级)282. 给表达式添加运算符思路:回溯法实现遇到的问题:前导零问题282. 给表达式添加运算符题目链接:https://leetcode-cn.com/problems/expression-add-operators/分类:回溯法(画出回溯树、for循环划分数字、先实现加减法再实现乘法、乘法引入pre变量指向前一个因子)字符串(递归传递字符串String和StringBuilder、保存现场和恢复现场)思路:回原创 2020-10-11 01:29:05 · 323 阅读 · 0 评论 -
[DFS BFS 动态规划] 279. 完全平方数(回溯法DFS → 动态规划、BFS、数学定理+排除法)
[DFS BFS 动态规划] 279. 完全平方数(回溯法DFS → 动态规划、BFS、数学定理+排除法)279. 完全平方数思路1:回溯法DFS(暴力解)思路2:动态规划(推荐)思路3:BFS(推荐)思路4:数学(记下结论就行)279. 完全平方数题目链接:https://leetcode-cn.com/problems/perfect-squares/分类:回溯法:DFS思想,一趟DFS返回一个划分方案所需要的最少完全平方数个数(思路1);动态规划:辅助数组优化回溯法,dp[i] = 数字原创 2020-10-09 22:59:30 · 274 阅读 · 0 评论 -
[设计数据结构] 208. 实现前缀树Trie(节点:Trie类/边:类内数组、终结点区分单词和前缀)211. 添加与搜索单词(前缀树的应用)212. 单词搜索 II(回溯法 + 前缀树)
[设计数据结构] 208. 实现前缀树Trie(节点:Trie类/边:类内数组、终结点区分树内的单词和前缀)208. 实现 Trie (前缀树)题目分析什么是前缀树?前缀树基本函数的实现要求算法设计1、设计节点和边的数据结构2、设计三个功能函数insert(word)search(word):(依赖终结点)startsWith(prefix)实现遇到的问题1、如何创建前缀树的根节点root?(在类里获取这个类的实例化对象)2、编写insert时忽略了已经存在的结点实现代码208. 实现 Trie (前缀树原创 2020-09-22 14:47:37 · 217 阅读 · 0 评论 -
[回溯 动态规划]131. 132 分割回文串 I II (回溯法→动态规划)
[回溯->动态规划]131. 132 分割回文串 I II (回溯法、动态规划)131. 分割回文串 I(找出所有子串解集)思路1:回溯法(未做优化)算法设计1、变量设置2、回溯函数的设置:3、子串回文的判断:双指针法实现代码思路1优化:动态规划提前构造回文判断数组实现遇到的问题:dp数组下标和substring下标的区间开闭情况不同实现代码132. 分割回文串 II(计算最少分割次数)题目分析:思路:动态规划131. 分割回文串 I(找出所有子串解集)题目链接:https://leetcode-原创 2020-10-28 18:29:36 · 179 阅读 · 0 评论 -
[回溯法 leetcode]126. 127 单词接龙 II I (回溯法、DFS、BFS、优化)
[回溯法 leetcode]126. 单词接龙 II (回溯法、DFS、BFS、优化)126.单词接龙 II题目分析思路1:DFS回溯(初始解法,理解问题)关键问题:1、如何从字典里找到下一个可行的转换?2、回溯法的流程3、易忽略点:题目要求的是最短序列!实现代码思路2:DFS回溯 + BFS寻找最短序列长度关键问题:1、如何将问题转化为图问题?2、如何进行BFS?借助队列 + 如何在BFS过程中找到最短序列长度?知识点:set,map,String,char[]实现时遇到的问题:1、if(found) b原创 2020-10-28 18:28:28 · 278 阅读 · 0 评论 -
[回溯法]77.组合(回溯+剪枝)78.子集 90.子集II (解集去重)79.单词搜索(二维平面回溯)
[回溯法 leetcode]77.组合(回溯法 + 剪枝)77.组合思路1:回溯法实现代码(剪枝前):剪枝:(难点)实现代码(剪枝后):77.组合题目链接:77.组合分类:回溯法、剪枝处理思路1:回溯法状态变量:used数组标记1~n的数字是否被使用过,depth表示递归深度,等于生成的组合大小,这里当depth==k时就说明得到一个k个数的组合。存储变量:List<List> res存放最终的解集,List list存放一个解,在depth==k时将list加入到res中。注原创 2020-10-16 13:25:19 · 135 阅读 · 0 评论 -
[动态规划]62. 63.不同路径 I II(回溯法、动态规划 + 优化)115. 不同的子序列(双序列动态规划)120. 三角形最小路径和(滚动数组优化)
[动态规划 leetcode]62. 不同路径(回溯法、动态规划 + 优化)62. 不同路径思路1:回溯法关键问题:如何用代码表示向下移动或向右移动?实现代码思路2:动态规划(推荐)思路2的空间优化:按行处理。关键问题:1、pre和cur的更新问题:2、pre、cur数组的初始化:实现代码62. 不同路径题目链接分类:回溯法、动态规划思路1:回溯法机器人每到达一个节点都有两个选择:向下或向右。关键问题:如何用代码表示向下移动或向右移动?机器人起点(1,1),设移动过程中机器人位置=(i,j)原创 2020-11-09 13:13:02 · 326 阅读 · 0 评论