摘要: 什么是回溯 在求解诸如八皇后、全排列等问题时,我们通常使用深度优先搜索dfs在解空间内搜索满足条件的解,dfs的搜索过程可以看做是在一棵搜索树上遍历的过程。例如,求数字[1,2,3]的全排列的搜索树如下: 当我们搜索到树的深层向浅层返回的过程就是回溯。 (我认为可以这样理解:从上往下搜索是递归,从下 阅读全文
posted @ 2020-04-25 23:00 Flix 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 题目描述 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 上图为 8 皇后问题的一种解法。 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。 每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后 阅读全文
posted @ 2020-04-25 21:27 Flix 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。 示例: 注意: S 的长度不超过12。 S 仅由数字和字母组成。 题目链接: https://leetcode cn.com/problems/letter case per 阅读全文
posted @ 2020-04-25 17:07 Flix 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次。 说明: 所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例: 输入: c 阅读全文
posted @ 2020-04-25 16:50 Flix 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。 解集不能包含重复的组合。 示例: 阅读全文
posted @ 2020-04-25 15:47 Flix 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一个仅包含数字 2 9 的字符串,返回所有它能表示的字母组合。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例: 题目链接: https://leetcode cn.com/problems/letter combinations of a phone n 阅读全文
posted @ 2020-04-25 15:00 Flix 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一个可包含重复数字的序列,返回所有不重复的全排列。 示例: 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] 题目描述: https://leetcode-cn.com/problems/permutations-ii/ 做这题之前可以先做一下 阅读全文
posted @ 2020-04-25 11:39 Flix 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 题目描述 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例: 题目链接: https://leetcode cn.com/problems/permutations/ 思路 使用回溯来做。回溯也是在模拟人做排列的方法。例如做[1,2,3]的排列: 1. 第一步有3个数[1,2,3]可以 阅读全文
posted @ 2020-04-25 10:41 Flix 阅读(226) 评论(0) 推荐(0) 编辑