难度:中等
频次:62

题目:

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

解题思路:DFS

DFS注意

  • 构造一棵树,只要遍历就行了
  • 递归结束条件是 left right(每次遍历一个节点就为0) 的值为0
  • 需要剪枝,条件是需要left>right[因为这道题的前提就是,一个字符串里”(“必须要比“)”多,才有机会合成,不然你剩下一堆的”("没地方用]
  • 每次遍历都需要判断条件,只有left和right>0才有必要进行相应的遍历

代码

class Solution {public List<String> generateParenthesis(int n) {List<String> res=new ArrayList<String>();dfs("",n,n,res);return res;}public void dfs(String s,int left,int right,List<String> res){if(left==0&&right==0) {res.add(s);return;}if(left>right){return;}//left、right必须>0,不然会走一些乱七八糟的遍历if(left>0){dfs(s+"(",left-1,right,res);}if(right>0){dfs(s+")",left,right-1,res);}}
}

leetcode 22. 括号生成相关推荐

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

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

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

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

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

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

  4. leetcode - 22. 括号生成

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

  5. Leetcode 22.括号生成 (每日一题 20210623)

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

  6. LeetCode 22. 括号生成(Generate Parentheses)

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

  7. LeetCode 22. 括号生成(回溯+剪枝)

    题目描述 给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 思路 详见链接 代码 from typing import List class Solution ...

  8. leetcode 22.括号生成

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

  9. LeetCode 22 括号生成

    https://leetcode-cn.com/problems/generate-parentheses/ 解决方案 class Solution {List<String> ans = ...

最新文章

  1. 基于机器视觉的缺陷检测汽车零部件
  2. 45 MySQL自增id
  3. 剑指Offer - 面试题7. 重建二叉树(递归)
  4. ActiveX: 如何用.inf和.ocx文件生成cab文件
  5. 火星人(洛谷P1088题题解,C++语言描述)
  6. php var export 数组,PHP关于数组缓存JSON、serialize、var_export的说明
  7. 蓝桥杯 ALGO-23 算法训练 一元三次方程求解
  8. orac l e数据库第一章
  9. 重新安装NVIDIA显卡驱动
  10. Mac唤醒后无声的一种解决方法
  11. Building Autoencoders in Keras
  12. 计算机网络属于什么结构,计算机网络体系结构是一种什么结构
  13. 第7周 项目6—停车场模拟
  14. 追梦App系列博客——后端架构篇
  15. 小米机型安全删除内置软件列表 miui12 miui13 可删除内置
  16. 基于photoshop滤色混合模式的图片亮度改变
  17. php 获取header头信息并显示网址,php 获取远程网址header头信息的方法
  18. 彻底卸载并重装Anaconda环境与Python的方法
  19. 图像视频压缩编码概述
  20. 19-你知道哪几种锁?分别有什么特点?

热门文章

  1. 数组去重是面试中经常问到的问题
  2. Python装饰器 计时器记录方法执行性能
  3. c# timer使用
  4. oracle易忘函数用法(3)
  5. 浅谈Sharepoint权限
  6. 2_flutter_TextField(文本框),TabBar(选项卡),bottomNavigationBar(底部导航栏)
  7. 读书笔记:《图解HTTP》第一章 网络基础
  8. Python网络协议模块学习之smtplib
  9. Java同步工具类——信号量
  10. 在Autodesk应用程序商店发布基于浏览器的Web应用程序