



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第Gojava算法之括号生成示例详解目录括号生成方法一:深度优先遍历(java)方法一:深度优先遍历(go)
括号生成
数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且有效的括号组合。
示例1:
输入:n=3
输出:[((())),(()()),(())(),()(()),()()()]
示例2:
输入:n=1
输出:[()]
提示:
1=n=8
方法一:深度优先遍历(java)
首先我们需要知道一个结论,一个合法的括号序列需要满足两个条件:
1、左右括号数量相等
2、任意前缀中左括号数量=右括号数量(也就是说每一个右括号总能找到相匹配的左括号)
题目要求我们生成n对的合法括号序列组合,因此可以考虑使用深度优先搜索
将搜索顺序定义为枚举序列的每一位填什么,那么最终的答案一定是由n个左括号和n个右括号组成。
classSolution{
publicListStringgenerateParenthesis(intn){
ListStringans=newArrayListString
backtrack(ans,newStringBuilder(),0,0,n);
returnans;
publicvoidbacktrack(ListStringans,StringBuildercur,intopen,intclose,intmax){
if(cur.length()==max*2){
ans.add(cur.toString());
return;
if(openmax){
cur.append('(');
backtrack(ans,cur,open+1,close,max);
cur.deleteCharAt(cur.length()-1);
if(closeopen){
cur.append(')');
backtrack(ans,cur,open,close+1,max);
cur.deleteCharAt(cur.length()-1);
时间复杂度:o(4^n/n^(1/2))
空间复杂度:o(n)
方法一:深度优先遍历(go)
具体方法分析已在上文中表述
根据题目条件生成一颗树,并对这颗树生枝叶的条件按照题目进行限制。
需要左右括号都大于0个时才可以进行生成树的操作(等于0的特殊情况)
生成树之后生出左节点的条件:左括号的剩余数量大于0
生成树之后生成右节点条件:左括号的剩余数量小于右括号的剩余数量
当左右括号都为0时,为成功出口,此时进行结算,保存结果。
varans[]string
varbacktrackfunc([]byte,int,int)
backtrack=func(bytes[]byte,leftint,rightint){
iflen(bytes)==2*n{
ans=append(ans,string(bytes))
return
ifleftn{
bytes=append(bytes,'(')
backtrack(bytes,left+1,right)
bytes=bytes[:len(bytes)-1]
ifrightleft{
bytes=append(bytes,')')
backtrack(bytes,left,right+1)
bytes=bytes[:len(bytes)-1]
varcontainer[]byte
backtrack(container,0,0)
returnans
时间复杂度:o(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安阳市2025-2026学年三年级数学第一学期期末调研模拟试题含解析
- 知识点梳理2025年中级经济师试题及答案
- 水利水电工程职场技能试题及答案
- 水电工程新技术应用试题及答案
- 工程项目管理技术分享试题及答案
- 现代园林地块设计规划方案
- 广告策划毕业设计答辩
- 心理安全教育幼儿园小班
- 税务合规经营证明书(7篇)
- 农村合作社土地整治及分配管理协议
- 团队境内旅游合同2014版
- 二年级数学三位数加减三位数计算题同步作业练习题
- 2024年天津市专业技术人员继续教育公需课考试题+答案 (四套全)
- 2024年度山西省教育系统后备干部题库及答案
- 《金融科技概论》期末考试题库(浓缩300题)
- 《陆上风电场工程概算定额》(NB-T 31010-2019)
- 小学科学冀人版六年级下册全册同步练习含答案
- 邮政储蓄银行-客户经理(个人消费贷款)-试题+答案
- 教学能力比赛-教学实施报告(汽车运用与维修)1
- 青年筑梦之旅创业计划书
- 髂动脉瘤破裂的护理课件
评论
0/150
提交评论