当前位置: 首页 > news >正文

LeetCode Hot 100 括号生成

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

示例 1:

输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]

示例 2:

输入:n = 1
输出:["()"]

提示:

  • 1 <= n <= 8

方法二:回溯法
思路和算法

方法一还有改进的余地:我们可以只在序列仍然保持有效时才添加 ‘(’ 或 ‘)’,而不是像 方法一 那样每次添加。我们可以通过跟踪到目前为止放置的左括号和右括号的数目来做到这一点,

如果左括号数量不大于 n,我们可以放一个左括号。如果右括号数量小于左括号的数量,我们可以放一个右括号。

class Solution {
public:void back(vector<string>& ans,string& cur,int open,int close,int n){if(cur.size() == n * 2){ans.push_back(cur);return;}if(open < n){cur.push_back('(');back(ans,cur,open + 1,close,n);cur.pop_back();}if(close < open){cur.push_back(')');back(ans,cur,open ,close + 1,n);cur.pop_back();}}vector<string> generateParenthesis(int n) {vector<string> ans;string cur;back(ans,cur,0,0,n);return ans;}
};
http://www.lryc.cn/news/601842.html

相关文章:

  • 力扣热题100----------41.缺少的第一个正数
  • NodeJs接入腾讯云存储COS
  • PROFINET转CAN通讯协议转换速通汽车制造
  • 解析json异常, ObjectMapper注册的问题
  • 生成式召回-TIGER范式
  • BUG记录——Request接传Json数据中文乱码
  • C语言——————学习笔记(自己看)
  • Oracle 19C RU 19.28 升级和安装
  • Frontiers in Psychology投稿LaTeX(三)
  • Python异常处理:金融风控系统中的救命盾牌
  • 设备分配与回收
  • 6.Pinia快速入门
  • 3.JDK+JRE组件构成与协作
  • LeetCode 刷题【16. 最接近的三数之和、17. 电话号码的字母组合】
  • 推荐系统学习
  • 电子电路设计学习
  • Oracle数据库常用语法详解
  • 逆向入门(43)程序逆向篇-tsrh-crackme
  • C++ auto 类型推导
  • Android MQTT 长连接最佳实践技术分享
  • 5.4 ASPICE适配过程中的实施改进
  • 机械学习初识--什么是机械学习--机械学习有什么重要算法
  • Red靶机攻略
  • 字符串是数据结构还是数据类型?
  • Day44 Java数组08 冒泡排序
  • python中的容器与自定义容器
  • Pinocchio 结合 CasADi 进行 IK 逆运动学及 Mujoco 仿真
  • 09_opencv_遍历操作图像像素
  • CIFAR100数据集实测-基于 AlexNet模型的压缩/Bagging/Boosting 探索
  • 人社部物联网安装调试员的实训平台