![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
回溯算法
李硕`丹诗尔顿
石坠可雕琢,虽美及相克。一页实则会,锁恐千秋坠。 石页不修边,一页请逃越,遂一页
20180827石坠千秋落,相克怎雕琢。一页实则许,恐至终难归。
展开
-
c# leetcode 784. 字母大小写全排列(回溯算法)
给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。示例:输入: S = "a1b2"输出: ["a1b2", "a1B2", "A1b2", "A1B2"]输入: S = "3z4"输出: ["3z4", "3Z4"]输入: S = "12345"输出: ["12345"]回溯: static ILi...原创 2020-04-21 12:29:37 · 328 阅读 · 0 评论 -
c# LeetCode17 电话号码的字母组合(贪心算法)
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。 ε=(´...原创 2019-02-23 19:13:15 · 290 阅读 · 0 评论 -
c# leetcode 面试题 08.09. 括号(字符串)(回溯)
面试题 08.09. 括号难度中等14收藏分享切换为英文关注反馈括号。设计一种算法,打印n对括号的所有合法的(例如,开闭一一对应)组合。说明:解集不能包含重复的子集。例如,给出n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]public class Solution {...原创 2020-03-31 22:30:36 · 186 阅读 · 0 评论 -
回溯算法 leetcode 总结
回溯算法 我的答案 题号 题目 通过率 难度 总结 掌握 #10 正则表达式匹配 26.8% 困难 #17 电话号码的字母组合 52.9% 中等 ...原创 2020-03-22 14:48:37 · 293 阅读 · 0 评论 -
Leetcode 78 c# 子集(回溯)
2019年2月24日 public static IList<IList<int>> Subsets(int[] nums) { List<IList<int>> result = new List<IList<int>>(); result.Add(new List<int>());原创 2018-08-15 15:56:23 · 263 阅读 · 0 评论 -
c# leetcode 51. N皇后(回溯算法)
n皇后问题研究的是如何将 n个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的n皇后问题的解决方案。每一种解法包含一个明确的n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例:输入: 4输出: [[".Q..", // 解法 1 "...Q"...原创 2019-12-22 14:56:16 · 259 阅读 · 0 评论 -
c# leetcode47. 全排列 II(回溯算法)
给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]] public class Solution { public IList<IList<int>> PermuteUnique(int[] nums) { var n ...原创 2019-12-22 14:43:22 · 168 阅读 · 0 评论 -
c# leetcode1079. 活字印刷(回溯算法)
你有一套活字字模tiles,其中每个字模上都刻有一个字母tiles[i]。返回你可以印出的非空字母序列的数目。示例 1:输入:"AAB"输出:8解释:可能的序列为 "A", "B", "AA", "AB", "BA", "AAB", "ABA", "BAA"。示例 2:输入:"AAABBC"输出:188提示:1 <= tiles.length...原创 2019-12-20 15:54:41 · 218 阅读 · 0 评论 -
c# Leetcode 40. 组合总和II(回溯算法)
给定一个数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例1:输入: candidates =[10,1,2,7,6,1,5], target =8,所求解集为...原创 2019-12-18 14:39:23 · 194 阅读 · 0 评论 -
c# leetcode 52. N皇后 II(回溯算法)
n皇后问题研究的是如何将 n个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回 n 皇后不同的解决方案的数量。示例:输入: 4输出: 2解释: 4 皇后问题存在如下两个不同的解法。[[".Q..", // 解法 1"...Q","Q...","..Q."],["..Q....原创 2019-12-17 14:25:01 · 322 阅读 · 0 评论 -
c# leetcode 39 组合总和(回溯算法)
给定一个无重复元素的数组candidates和一个目标数target,找出candidates中所有可以使数字和为target的组合。candidates中的数字可以无限制重复被选取。说明:所有数字(包括target)都是正整数。解集不能包含重复的组合。示例1:输入: candidates = [2,3,6,7], target = 7,所求解...原创 2019-12-16 18:35:24 · 185 阅读 · 0 评论 -
c# leetcode 77. 组合(回溯算法)
给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合。示例:输入:n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],] public static IList<IList<int>> Combine(int n, int...原创 2019-12-16 17:48:43 · 165 阅读 · 0 评论 -
c# Leetcode 46. 全排列(回溯算法)
给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]] 这道题如果不用回溯算法(DFS)做就失去了意义。DFS:public class Solution { public IList&l...原创 2019-12-16 16:07:52 · 317 阅读 · 0 评论 -
c#Leetcode22括号生成(回溯算法)
给出n代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出n=3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]我总结了一下,回溯算法+剪枝大法 public IList<string> GenerateParenthesis(i...原创 2019-12-16 15:20:48 · 180 阅读 · 0 评论