![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
回溯
iblue_coffee
一个又菜还不承认自己菜的追梦人。
展开
-
LeetCode第22题解析
数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。示例:输入:n = 3输出:[ "((()))", "(()())", "(())()", "()(())", "()()()" ]递归:class Solution {public: vector<string> generateParenthesis(int n) { ...原创 2020-07-24 21:14:30 · 659 阅读 · 0 评论 -
LeetCode第78题解析
给定一组不含重复元素的整数数组nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]观察全排列/组合/子集问题,它们比较相似,且可以使用一些通用策略解决。首先,它们的解空间非常大: 全排列:N!。 组合:N!。 子集:2^N,每个元素都可能存在或不存在。...原创 2020-07-28 21:06:34 · 735 阅读 · 0 评论 -
LeetCode第77题解析
给定两个整数n和k,返回 1 ...n中所有可能的k个数的组合。示例:输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]套用回溯算法的模板。vector<vector<int>>res;vector<vector<int>> combine(int n, int k) { if (k <= 0 || n...原创 2020-07-28 21:07:33 · 214 阅读 · 0 评论 -
LeetCode第46题解析
给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]解法一:用回溯算法的模板。class Solution {public: vector<vector<int>> res; vector<vector<int>> permute(v..原创 2020-07-28 21:07:40 · 212 阅读 · 0 评论 -
LeetCode第47题解析
给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[ [1,1,2], [1,2,1], [2,1,1]]原创 2020-07-29 20:05:03 · 281 阅读 · 0 评论 -
LeetCode第51题解析
n皇后问题研究的是如何将n个皇后放置在n×n的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的n皇后问题的解决方案。每一种解法包含一个明确的n 皇后问题的棋子放置方案,该方案中 'Q' 和 '.' 分别代表了皇后和空位。示例:输入: 4输出: [ [".Q..", // 解法 1 "...Q", "Q...", "..Q."], ["..Q.", // 解法 2 "Q...", ...原创 2020-07-31 20:35:24 · 578 阅读 · 0 评论 -
LeetCode第79题解析
给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 word = "ABCCED", 返回 true给定 word = "SEE", 返回 true给定 word = "ABCB", 返原创 2020-09-08 22:11:41 · 212 阅读 · 0 评论