
递归回溯
文章平均质量分 79
AiryView
等待雪融的你
展开
-
教你做回溯题(Leetcode电话号码的字母组合、括号生成和单词搜索)-第四期
前三期指路:第一期第二期第三期这次应该是最后一期了,前几次的题目比较常规,基本是什么子集或者排列什么的书面语言,这期就总结一些比较偏向应用类的题目,当然其实本质还是那一套。例题电话号码的字母组合给定一个仅包含数字2-9的字符串,返回所有能表示的字母组合,其中这个数字与字母的映射关系如下(就是我们手机键盘):定义一个映射向量方便操作vector<string> mapping{"abc","def","ghi","jkl","mno","pqrs","t.原创 2021-08-29 14:44:57 · 190 阅读 · 0 评论 -
教你做回溯题(Leetcode全排列和全排列II)-第三期
前两期指路:第一期:第一期第二期:第二期例题全排列给定一个不含重复数字的数组,返回所有可能的全排列,对于组合集合来说,要考虑顺序①选择一个实例[1,2,3]画图②确定结束条件由于是全排列,所以最后结果的集合一定包含多有的数,那么结束条件是path的长度与题目给的nums一样//结束条件if(path.size()==nums.size()){ res.push_back(path);}③确定选择列表,我们发现这题选择列表相对于前几期没那么有规律。.原创 2021-08-28 16:30:58 · 244 阅读 · 0 评论 -
教你做回溯题(Leetcode组合总数和组合总数II)-第二期
定义什么的就不多说了,上期都有,还有这期涉及到上期的知识,最好结合上期看。上期指路:递归回溯题目总结(第一期)例题组合总和给定一个无重复元素的正整数数组和一个目标正整数,找出数组中所有可以使数字和为目标正整数的组合(数组中的一个数可以被重复使用)①选择一个实例[2,3,5]与8画图这个图没有画完,但是基本清楚大致,流程。②确定结束条件定义一个sum,记录一次深入递归遍历的和,如果等于目标数,则结束,加入结果集。//条件判断if(sum==target){ .原创 2021-08-27 17:04:11 · 192 阅读 · 0 评论 -
教你做回溯题(Leetcode子集和子集 II)-第一期
什么时候需要用到回溯,为什么回溯和递归有关?在了解回溯之前,我们需要了解dfs,dfs就是深度优先遍历,简单来说,dfs就是一口气往往某个深度方向搜索,而回溯是建立在dfs的基础之上的,在搜索时,达到结束条件后,需要回复之前改变的状态,再次搜索,就是说比dfs多了一个状态重置...原创 2021-08-27 15:55:40 · 362 阅读 · 0 评论