原题

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]
示例 2:输入:n = 1
输出:["()"]来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/generate-parentheses
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路

回溯
有三个条件
1、左括号+右括号=总数*2
2、左括号<=总数
3、右括号小于等于左括号

代码

package leetcode.Algorithms;import java.util.ArrayList;
import java.util.List;public class Solution_22 {public static void main(String[] args) {generateParenthesis(3);}public static List<String> generateParenthesis(int n) {List<String> res = new ArrayList<>();dfs(res, n, 0, 0, new StringBuilder());return res;}private static void dfs(List<String> res, int n, int left, int right, StringBuilder stringBuilder) {if (left + right == 2 * n) {res.add(stringBuilder.toString());return;}if (left < n) {stringBuilder.append("(");dfs(res, n, left + 1, right, stringBuilder);stringBuilder.deleteCharAt(stringBuilder.length() - 1);}if (right < left) {stringBuilder.append(")");dfs(res, n, left , right+1, stringBuilder);stringBuilder.deleteCharAt(stringBuilder.length() - 1);}}}

leetcode-Algorithms-22|括号生成相关推荐

  1. LeetCode Algorithm 22. 括号生成

    22. 括号生成 Ideas 这是一道动态规划的题目,关于动态规划的题目我们可以从n比较小的情况下开始逐步分析. 当n=1时,["()"] 当n=2时,["()()&qu ...

  2. 【力扣LeetCode】22 括号生成

    题目描述(难度中) 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", &qu ...

  3. [DFS|剪枝] leetcode 22 括号生成

    [DFS|剪枝] leetcode 22 括号生成 1.题目 题目链接 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合. 示例: 输入:n = 3 输出:[& ...

  4. Leetcode 22. 括号生成(递归+去重)

    22. 括号生成 思路: 递归+map去重: 递归函数声明: vector<string> generateParenthesis(int n); 递归出口: 当n=1时,返回{" ...

  5. Leetcode-笔记-22.括号生成--递归

    Leetcode-笔记-22.括号生成 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合. 示例 1: 输入:n = 3 输出:["((()))& ...

  6. LeetCode 21合并两个有序链表22括号生成

    微信搜索bigsai,回复进群,加入打卡.维护不易,欢迎点赞支持! 合并两个有序列表 将两个升序链表合并为一个新的 升序 链表并返回.新链表是通过拼接给定的两个链表的所有节点组成的. 示例: 输入:1 ...

  7. 22. 括号生成 golang 图解

    题目 括号生成 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", " ...

  8. LeetCode 22. 括号生成(回溯/DP)

    文章目录 1. 题目 2. 解题 2.1 暴力回溯 2.2 DP 1. 题目 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结 ...

  9. leetcode - 22. 括号生成

    给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", "(()())& ...

  10. leetcode 22. 括号生成

    难度:中等 频次:62 题目: 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合. 解题思路:DFS DFS注意 构造一棵树,只要遍历就行了 递归结束条件是 ...

最新文章

  1. 腾讯云发布智慧能源四大新品,携手合作伙伴共建智慧能源生态圈
  2. pycharm 2020 版取消鼠标悬停显示说明文档的方法
  3. 【华为云技术分享】STM32L476移植华为LiteOS系列教程---开发前的准备 2
  4. ctfshow-萌新-web9( 利用命令执行漏洞读取网站敏感文件)
  5. [Tools 之]online bookmark 在线书签
  6. itextpdf添加表格元素_基操勿6第四期:PPT表格美化
  7. PHP SOCKET SERVER 二
  8. c语言程序员英文简历,程序员it英文简历模板范文
  9. 如何使用PAUP4、MrBayes、TNT构建系统发育树
  10. 马化腾教你做产品:改掉这七点,让产品自己说话
  11. 云计算第二天总结 10.29
  12. 山东大学项目实训(二十七)—— 微信小程序开发总结,一年时间真的可以改变一个人很多
  13. 和生活一起理解51单片机① 如何入门学习单片机
  14. OLTP和OLAP有何区别?
  15. 微信小程序账号注册流程
  16. 转载:Docker入门只需看这一篇就够了
  17. Vue:使用elementUI upload组件上传excel文件
  18. 上海博物馆——古代的邂逅
  19. 60 个让程序员崩溃的瞬间,哈哈哈哈哈哈哈哈哈
  20. 文盾信息非结构化数据安全解决方案,高效防护企业文档安全

热门文章

  1. 程序员来聊一聊信用卡(三)——信用卡的一些基本分类
  2. 第二章 关系模型和关系运算理论 3类完整性
  3. 数学老师必看,教您快速画椭圆
  4. 诊断CAPL自动化(2)—— 封装了诊断发送的通用CAPL函数库
  5. 小白爬虫入门——装软件
  6. [数学建模(四)]MATLAB神经网络工具箱的简单应用
  7. 几种线程安全的Map解析,真香系列
  8. 更换JDK然后打不开eclipse的解决方法
  9. XJOI--三质数c++
  10. HC05蓝牙模块与手机APP连接