回溯
Lc_summer
这个作者很懒,什么都没留下…
展开
-
解数独
leetcode 37. 解数独题目链接编写一个程序,通过填充空格来解决数独问题。一个数独的解法需遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。空白格用 ‘.’ 表示。一个数独。答案被标成红色。提示:给定的数独序列只包含数字 1-9 和字符 ‘.’ 。你可以假设给定的数独只有唯一解。给定数独永远是 9x9 形式的。递归三部曲1.参数和返回值:输入一个二位数组表示数独,返回原创 2021-03-09 10:45:07 · 341 阅读 · 0 评论 -
N皇后问题
leetcode 51. N 皇后给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例: 输入: 4输出: [[".Q…", // 解法 1“…Q”,“Q…”,“…Q.”],["…Q.", // 解法 2“Q…”,“…Q”,“.Q…”]]解释: 4 皇后问题存在两个不同的解法递归三部曲参数和返回值:全局变量保存result保存所有的可能结果,输入当前层数和原创 2021-03-09 10:44:49 · 108 阅读 · 0 评论 -
全排列(有重复数)
leetcode 47. 全排列 II题目链接给定一个可包含重复数字的序列 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]]提示:1 <= nums.length <= 8-10 <= nums[i] <= 10原创 2021-03-09 10:44:21 · 1028 阅读 · 0 评论 -
全排列(无重复数)
leetcode 46 全排列题目链接给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]递归三部曲1.返回值和参数:输入排列数组和记录数组中的元素是否被使用的数组2.单层递归逻辑:遍历数组每次取一个元素添加到path,但是要取没有使用过的元素3.终止条件:当path大小等于nums的大小则表示获得了一个结果,将其添加到结果集然后退出当前递原创 2021-03-09 10:44:02 · 470 阅读 · 0 评论 -
DFS和BFS求解岛屿数量
题目描述给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛。我们只考虑上下左右为相邻。岛屿: 相邻陆地可以组成一个岛屿(相邻:上下左右) 判断岛屿个数。示例1输入[[1,1,0,0,0],[0,1,0,1,1],[0,0,0,1,1],[0,0,0,0,0],[0,0,1,1,1]]返回值3备注:01矩阵范围<=200*200思路先遍历所有节点找到节点值为1的,然后将当前节点的坐标传递给DFS或者BFSDFS递归三部曲1.输入和返回值:输入原创 2021-03-05 13:40:41 · 427 阅读 · 0 评论 -
求子集
第78题. 子集题目链接给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例: 输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]递归三部曲1.参数和返回值:数组 和 数组的起始点,结果集保存在全局变量result2.单层递归逻辑:遍历数组,每次添加一个元素在path中就将其添加到结果集3.终止条件:当起始点到数组末尾退出class S原创 2021-03-05 08:51:49 · 113 阅读 · 1 评论 -
复原ip地址(类似分割字符串)
leetcode 93.复原IP地址题目链接给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。有效的 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。例如:“0.1.2.201” 和 “192.168.1.1” 是 有效的 IP 地址,但是 “0.011.255.245”、“192.168.1.312” 和 “192.168@1.1” 是 无效的 IP 地址。示例 1:输入:s = “25525511135”原创 2021-03-05 08:51:33 · 186 阅读 · 2 评论 -
分割回文串(类似组合数,在所有的切割结果中寻找回文串)
leetcode 131.分割回文串题目链接给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例:输入: “aab”输出:[[“aa”,“b”],[“a”,“a”,“b”]]递归三部曲1.参数和返回值:结果集保存在全局变量result,输入字符串和当前的切割indexStart2.单层递归逻辑:遍历字符串的每一个切割点,将字符串划分成两个部分,当前字符串为回文串则添加到结果集3.当切割点到字符串末尾退出class Solution原创 2021-03-05 08:51:11 · 182 阅读 · 4 评论 -
求数组中和为target的所有组合(数组中有重复数,数不能重复取)
leetcode 40.组合总和II题目链接给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为:[[1, 7],[1, 2, 5],[2, 6],[1, 1,原创 2021-03-05 08:50:53 · 3068 阅读 · 0 评论 -
求数组中和为target的所有组合(数组中无重复数,数可以重复取)
leetcode 39.组合总和给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[[7],[2,2,3]]示例 2:输入:candidates = [2,3,5]原创 2021-03-05 08:50:21 · 3069 阅读 · 0 评论 -
电话号码中的字母组合
leetcode 17.电话号码的字母组合题目链接给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按任意顺序返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = “23”输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]示例 2:输入:digits = “”输出:[]示例 3:输入:digits = “2”输出:[“a”,“b”,“c”]递归三部曲1原创 2021-03-04 09:37:05 · 149 阅读 · 0 评论 -
求1--9中和为target的所有组数(类似n叉树的路径和)
leetcode 216. 组合总和 III题目链接找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数。解集不能包含重复的组合。示例 1:输入: k = 3, n = 7输出: [[1,2,4]]示例 2:输入: k = 3, n = 9输出: [[1,2,6], [1,3,5], [2,3,4]]递归三部曲1.参数和返回值:输入target,和的数量 k 以及起始搜索点 indexStart原创 2021-03-04 09:36:38 · 171 阅读 · 0 评论