回溯算法
文章平均质量分 55
empty__barrel
这个作者很懒,什么都没留下…
展开
-
力扣:46.全排列
给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列。你可以 按任意顺序 返回答案。此题为排列题目,要求求出所有可能的排列,若按照递增的顺序排列。原创 2022-08-20 15:16:57 · 213 阅读 · 0 评论 -
力扣:37. 解数独
代码随想录力扣:37. 解数独引用的重要性这题一直卡一直卡,搞了半天原来是没有用引用。真是醉了!一开始自己写后来改的跟代码随想录一模一样,改到最后才发现,烦得很,浪费了这么长时间。题目:编写一个程序,通过填充空格来解决数独问题。一个数独的解法需遵循如下规则: 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 空白格用 ‘.’ 表示。回溯就是暴力。把所有可能性罗列出来。现在真的烦,妈的。每个位置都有1-原创 2022-05-21 21:09:11 · 112 阅读 · 0 评论 -
力扣:131.分割回文串
class Solution {private: vector<vector<string>> result; vector<string> path; // 放已经回文的子串 void backtracking (const string& s, int startIndex) { // 如果起始位置已经大于s的大小,说明已经找到了一组分割方案了 if (startIndex >= s.size()原创 2022-05-15 18:07:31 · 174 阅读 · 0 评论 -
组合题目类型总结 以及力扣:40.组合总和||
情况讨论(可视为排列组合问题):result中的path肯定不能重复的(即下一层的集合是上一层集合的剩余元素):1、:path中元素可重复①:数组中元素不重复下一层的集合是上一层集合的剩余元素(去除了之前的可能性实现result中path不重复)加上上一层选择的那一个元素(实现数组元素在path中的可重复)。②:数组中元素重复在①的方法下还要去除result中path重复项。树层去重(横向):加一个bool型数组used,用来记录同一树枝上的元素是否使用过。2、:path中元素不可重复下一原创 2022-05-15 16:21:09 · 96 阅读 · 0 评论 -
回溯算法。力扣:17.电话号码的字母组合
力扣:17.电话号码的字母组合代码随想录题目:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。class Solution {private: const string letterMap[10] = { "", // 0 "", // 1 "abc", // 2 "def", // 3 "gh原创 2022-04-08 17:28:53 · 130 阅读 · 0 评论 -
回溯算法概念 及力扣:77.组合
原文于代码随想录回溯三部曲。回溯函数模板返回值以及参数在回溯算法中,我的习惯是函数起名字为backtracking,这个起名大家随意。回溯算法中函数返回值一般为void。再来看一下参数,因为回溯算法需要的参数可不像二叉树递归的时候那么容易一次性确定下来,所以一般是先写逻辑,然后需要什么参数,就填什么参数。回溯函数伪代码如下:void backtracking(参数)回溯函数终止条件什么时候达到了终止条件,树中就可以看出,一般来说搜到叶子节点了,也就找到了满足条件的一条答案,把这个答案存放原创 2022-04-08 16:42:36 · 966 阅读 · 0 评论