![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
回溯算法
文章平均质量分 62
ggaoda
这个作者很懒,什么都没留下…
展开
-
leetcode-37.解数独
深度优先搜索(dfs)回溯法题目详情编写一个程序,通过填充空格来解决数独问题。数独的解法需 遵循如下规则:1.数字 1-9 在每一行只能出现一次。2.数字 1-9 在每一列只能出现一次。3.数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用'.'表示。示例1:输入:board = [["5","3",".",".","7",".",".",".","."],["6",".",".","1","9","5",".",原创 2022-04-18 09:46:15 · 154 阅读 · 0 评论 -
leetcode-47.全排列 II
深度优先搜索(dfs)回溯法题目详情给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。示例1:输入:nums = [1,1,2]输出:[[1,1,2], [1,2,1], [2,1,1]]示例2:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]先参考:无重复数字的全排列题:leetcode-46.全排列本题和46的区别,需要有一个判断能否swap的函数,原创 2022-04-16 16:43:56 · 92 阅读 · 0 评论 -
leetcode-40.组合总和 II
深度优先搜索(dfs)回溯法题目详情给你一个大小为m x n的二进制矩阵 grid 。岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。岛屿的面积是岛上值为 1 的单元格的数目。计算并返回 grid 中最大的岛屿面积。如果没有岛屿,则返回面积为 0 。示例1:输入:grid = [[0,0,1,0,0,0,0,1,0,0,0,0,0],[0,0,0,0,0,0原创 2022-04-16 15:54:40 · 527 阅读 · 0 评论 -
leetcode-39.组合总和
深度优先搜索(dfs)回溯法题目详情给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。示例1:输入:candidates = [原创 2022-04-16 15:29:02 · 318 阅读 · 0 评论 -
leetcode-257.二叉树的所有路径
深度优先搜索(dfs)回溯法题目详情给你一个二叉树的根节点root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。叶子节点 是指没有子节点的节点。示例1:输入:root = [1,2,3,null,5]输出:["1->2->5","1->3"]示例2:输入:root = [1]输出:["1"]我的代码:代码中回溯是隐式存在的,因为dfs的参数中path是string而不是引用类型,从而每次调用dfs,用的不是同一个path,而是一次次的副本,比如1原创 2022-04-14 21:47:28 · 449 阅读 · 0 评论 -
leetcode-126.单词接龙 II
深度优先搜索(dfs)广度优先搜索(bfs)回溯法题目详情按字典 wordList 完成从单词 beginWord 到单词 endWord 转化,一个表示此过程的 转换序列 是形式上像 beginWord -> s1 -> s2 -> ... -> sk 这样的单词序列,并满足:1.每对相邻的单词之间仅有单个字母不同。2.转换过程中的每个单词 si(1 <= i <= k)必须是字典 wordList 中的单词。注意,beginWord 不必是字典 word原创 2022-04-14 16:47:09 · 163 阅读 · 0 评论 -
leetcode-51. N 皇后
深度优先搜索(dfs)回溯算法题目详情n 皇后问题 研究的是如何将 n 个皇后放置在n×n的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中'Q' 和 '.'分别代表了皇后和空位。示例1:输入:n = 4输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]]解释:如上图所示,4 皇后问题存在两原创 2022-04-11 10:42:03 · 561 阅读 · 0 评论 -
leetcode-79. 单词搜索
深度优先搜索(dfs)回溯算法题目详情给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例1:输入:board = [["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]], word = "原创 2022-04-11 09:04:20 · 102 阅读 · 0 评论 -
leetcode-77.组合
深度优先搜索(dfs)回溯算法题目详情给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例1:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]示例2:输入:n = 1, k = 1输出:[[1]]leetcode第46道排列是同一类题:leetcode-46.全排列类似于排列问题,我们也可以进行回溯。排列回原创 2022-04-10 15:38:21 · 105 阅读 · 0 评论 -
leetcode-46.全排列
深度优先搜索(dfs)回溯算法题目详情给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例2:输入:nums = [0,1]输出:[[0,1],[1,0]]示例3:输入:nums = [1]输出:[[1]]我的代码:这道题其实就是一个树形结构,每次遍历到叶子的时候,即dfs到原创 2022-04-10 15:14:53 · 745 阅读 · 0 评论