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

leetcode 22 括号生成

一、题目描述

二、解题思路

整体思路

模拟画出解题的决策树,我们可以采用回溯+剪枝来解决这个问题。

具体思路

(1)剪枝策略

<1>当左括号'('数大于n,生成的path不合法,进行剪枝;

<2>当右括号')'数大于左括号数,生成的path不合法,进行剪枝;

(2)函数功能:dfs函数用于找出括号数为n,左括号数为left,右括号数为right所有有效的括号组合 ;

(3)递归出口:当path.size()==2*n,将path加入ret,再return;

(4)函数体:处理当前节点,可以添加'('和')'。

<1>添加左括号。若left<n,将'('加入path,dfs递归处理left+1的后续情况,处理后恢复现场;

<2>添加右括号。若left>right,将')'加入path,dfs递归处理right+1的后续情况,处理后恢复现场;

三、代码实现

class Solution {vector<string> ret;string path;
public:vector<string> generateParenthesis(int n) {dfs(0,0,n);return ret;}void dfs(int left,int right,int n){//递归出口if(path.size()==2*n){ret.push_back(path);return ;}//剪枝:左括号数大于nif(left<n){path.push_back('(');dfs(left+1,right,n);//恢复现场path.pop_back();}//剪枝:右括号大于左括号数if(left>right){path.push_back(')');dfs(left,right+1,n);//恢复现场path.pop_back();}}
};

http://www.dtcms.com/a/430771.html

相关文章:

  • 从0死磕全栈之Next.js App Router 入门实战:5 分钟搭建一个待办事项(Todo List)应用
  • Nature 正刊:美国麻省理工学院团队开发了多模态机器人平台加速多元素催化剂的发现与优化
  • [Windows] 【2025.09.30更新】PotPlayer_ 64位Public版_v250909(1.7.22619)_精简绿化版
  • 【Java ArrayList】底层方法的自我实现
  • 安卓基础组件015--textinput
  • YDWE编辑器系列教程三:触发编辑器
  • [hpatch]差分算法学习笔记 -- lite解压
  • 【langgraph】conda创建3.13环境并运行langgraph dev
  • 免费企业建站模板wordpress媒体库一直加载
  • 自己建设公司网站免费建站网站 seo
  • web开发,在线%校园,论坛,社交管理%系统,基于html,css,python,django,mysql
  • 基于开源AI智能名片链动2+1模式S2B2C商城小程序的引流爆款设计策略研究
  • Stable Diffusion里面Cross-Attention设计:为啥Q来自图像/噪声,K和V来自文本
  • 镇江网站关键字优化建立网站站点的过程中正确的是
  • 深度学习第九章 卷积神经网络
  • 【数据结构】堆、计数、桶、基数排序的实现
  • 【数据结构】数据结构秘籍:如何衡量“查找”的快慢?ASL是关键!
  • 1688网站入口学编程的正规学校培训机构
  • Python 2025:嵌入式系统与物联网(IoT)开发新趋势
  • 怎么看网站备案网店运营都要做什么
  • 【数据结构与算法学习笔记】栈
  • Java-Spring入门指南(十八)JSON字符串的解析与对象转换
  • JavaScript 严格模式
  • 数据时代的基石 —— 数据库的核心价值:MySQL 三大范式精讲
  • **跨平台开发:发散创新,探索无界限**随着技术的飞速发展,跨平台开发已经成为软件开发的必然趋势
  • 2025年中小工程企业成本管理新突破:如何选对管理软件?
  • JVM初始堆大小和最大堆大小多少合适?
  • 网站汉英结合的怎么做织梦欧美网站模板
  • 构建AI智能体:五十、ModelScope MCP广场 · MCP协议 · Cherry Studio:AI应用生产线
  • 从零开始:MCP数据库助手(二)- 核心功能实现