leetcode回溯系列
leetcode回溯系列
谜底广告歌
我迷恋的时光自天空倾倒
展开
-
leetcode回溯系列总结
回溯算法在用到的时候,需要考虑下回溯算法模板:1.确定回溯(递归)函数参数2.确定递归终止条件3.确定单层循环逻辑其余的就是对于不同的题型,注意不同的细节了。原创 2023-04-01 18:05:18 · 396 阅读 · 0 评论 -
leetcode 37 解数独
单引号在go语言中表示golang中的rune(int32)类型,单引号里面是单个字符,对应的值为该字符的ASCII值,比如。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。编写一个程序,通过填充空格来解决数独问题。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。原创 2022-11-30 22:39:09 · 354 阅读 · 0 评论 -
leetcoded 51N皇后
每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。注意代码中的strings.Join(),将字符串切片中存在的所有元素连接为单个字符串;在这里,s是可用来连接元素的字符串,sep是放置在最终字符串中元素之间的分隔符。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。原创 2022-11-30 21:10:22 · 75 阅读 · 0 评论 -
leetcode 47全排列II
的序列 nums ,按任意顺序 返回所有。输入:nums = [1,1,2]和上一题不同的是,包含了重复的数字。没看懂其中那几个判断条件。原创 2022-11-30 00:16:08 · 214 阅读 · 0 评论 -
leetcode 46 全排列
排列与组合不同,[1, 2] 和 [2, 1]是两个结果,因此之前经常用的startIndex在这里就用不到了,每一个for循环都需要从0开始,但是需要一个map来标记每个树枝上元素是否被用过了;输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列。你可以 按任意顺序 返回答案。输入:nums = [1,2,3]原创 2022-11-29 23:36:23 · 68 阅读 · 0 评论 -
leetcode 491 非递减子序列
给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素。你可以按 任意顺序 返回答案。输出:[[4,6],[4,6,7],[4,6,7,7],[4,7],[4,7,7],[6,7],[6,7,7],[7,7]]数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。输入:nums = [4,6,7,7]原创 2022-11-29 22:57:35 · 60 阅读 · 0 评论 -
leetcode 90 子集II
这道题和上一道的区别就是原始数据中有重复的元素,结果集中同一树枝的元素可以重复,但同一层的不可以重复;给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]输入:nums = [1,2,2]原创 2022-11-29 22:00:44 · 78 阅读 · 0 评论 -
leetcode 78 子集
之前的题型基本上都是走到叶子节点,符合条件后才加入到结果集中,本题中每个叶节点都需要加入进去;给你一个整数数组 nums ,数组中的元素 互不相同。返回该数组所有可能的子集(幂集)。输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]这道题相对于之前的组合问题和分割问题,看起来简单了不少,直接套用模板就可以;解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。输入:nums = [1,2,3]原创 2022-11-29 20:59:05 · 67 阅读 · 0 评论 -
leetcode 93 复原IP地址
给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入 ‘.’ 来形成。你 不能 重新排序或删除 s 中的任何数字。例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址,但是 “0.011.255.245”、“192.168.1.312” 和 “[email protected]” 是 无效 IP 地址。这道题可以是上一道分割字符串题目的加强版,与之前题目有所不同的是,这次的返回结果是一个一维数组;原创 2022-11-29 20:32:01 · 370 阅读 · 0 评论 -
leetcode 131 分割回文串
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串。返回 s 所有可能的分割方案。输出:[[“a”,“a”,“b”],[“aa”,“b”]]回文串 是正着读和反着读都一样的字符串。输入:s = “aab”原创 2022-11-28 09:54:39 · 540 阅读 · 0 评论 -
leetcode40 组合总和II
给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。输入: candidates = [10,1,2,7,6,1,5], target = 8,本题中每个数字在每个组合中可以使用多次;但最后的组合不用有相同的;candidates 中的每个数字在每个组合中只能使用 一次。而上一道题,是原始数据中没有重复元素,但一个元素可以用多次;也就是说,树的深度不用去重,宽度的时候需要去重;本题中原始数据中有重复元素;原创 2022-11-27 23:21:45 · 108 阅读 · 0 评论 -
leetcode39 组合总和
给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。如果至少一个数字的被选数量不同,则两种组合是不同的。2 和 3 可以形成一组候选,2 + 2 + 3 = 7。注意 2 可以使用多次。输入:candidates = [2,3,6,7], target = 7。对于给定的输入,保证和为 target 的不同组合数少于 150 个。输出:[[2,2,3],[7]]原创 2022-11-27 22:54:40 · 126 阅读 · 0 评论 -
leetcode17 电话号码的字母组合
输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。输入:digits = “23”原创 2022-11-27 22:15:07 · 102 阅读 · 0 评论 -
leetcode 216 组合总和III
返回 所有可能的有效组合的列表。该列表不能包含相同的组合两次,组合可以以任何顺序返回。也可以将结果定义成函数外面的全局变量,然后在外定义函数;输入: k = 3, n = 7。输出: [[1,2,4]]没有其他符合的组合了。原创 2022-11-24 10:20:38 · 60 阅读 · 0 评论 -
leetcode 77 组合
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。加了剪枝的代码:什么是剪枝,就是可以删掉一部分根本不是结果的遍历,遇到这些就不用取遍历处理了。输出:[ [2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]输入:n = 4, k = 2。原创 2022-11-22 09:33:27 · 275 阅读 · 0 评论