![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
回溯专题
文章平均质量分 63
大帅比的小跟班
双非水硕在读憨憨一枚。。。
展开
-
回溯——棋盘问题——解数独
37. 解数独 编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字1-9在每一行只能出现一次。 数字1-9在每一列只能出现一次。 数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。(请参考示例图) 数独部分空格内已填入了数字,空白格用'.'表示。 提示: board.length == 9 board[i].length == 9 board[i][j] 是一位数字或者 '.' 题目数据 保证 输入数独仅有一个解 解题思路:暴力回溯...原创 2022-01-11 21:21:15 · 402 阅读 · 0 评论 -
回溯——棋盘问题——N皇后
51. N 皇后 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。 每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。 解题思路:回溯 我们可以将棋盘的 ‘行’看作回溯的横向for循环,棋盘的 ‘列’ 看作回溯的纵向递归,N皇后问题便可以转化成如下的树形结构。 代码实现和提交结果如下: class So...原创 2022-01-11 00:00:46 · 750 阅读 · 0 评论 -
回溯——子集问题
78. 子集 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 解题思路:回溯 与组合问题相比,组合问题收集的是抽象树结构的叶子节点,而自己问题则是需要收集所有节点。 代码和提交结果如下: class Solution { public List<List<Integer>> subsets(int[] nums) { //回溯法 .原创 2022-01-07 23:59:41 · 845 阅读 · 0 评论 -
回溯——分割字符串问题
题目一:131. 分割回文串 给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都一样的字符串。 解法:回溯+剪枝 递归用来纵向遍历,for循环用来横向遍历,切割线(就是图中的红线)切割到字符串的结尾位置,说明找到了一个切割方法。 此时可以发现,切割问题的回溯搜索的过程和组合问题的回溯搜索的过程是差不多的。 代码和提交结果如下: class Solution { public List<L.原创 2022-01-06 23:14:01 · 905 阅读 · 0 评论