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

Leetcode22括号生成(java实现)

今天分享的题目是Leetcode22括号生成,具体的题目描述如下:
在这里插入图片描述
本道题我们使用的解法是回溯。
解题思路:
我们主要是对括号出现的可能性进行一个收集。
我们以n=2举例子,如下图
在这里插入图片描述

如果想要合法,那么一定是左括号开始,并且以左括号为开始,要对不合适的进行剔除。可以思考一下,为何最后一个不符合呢?是因为左括号个数为1,右括号个数为1,然后没有以左括号开始。
上面的两种情况合法,第一种情况,左括号个数为2并且右括号个数为2.
所以要想合法的前提是,左括号个数等于右括号,左括号为开始。
具体的代码如下:

class Solution {List<String> res = new ArrayList();public List<String> generateParenthesis(int n) {backtracking(0,0,n,"");return res;
}public void backtracking(int left,int right,int n ,String str){if(left<right){return;}//收集结果if(left==n&&right==n){res.add(str);return;}//补左括号,left个数加1if(left<n){backtracking(left+1,right,n,str+"(");}//补右括号,右括号数量加1if(left>right){backtracking(left,right+1,n,str+")");}}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 5个自动化测试用例设计的原则
  • 行为型设计模式-命令(command)模式-python实现
  • knime用三种方法提取列中需要的数据实战
  • ffmpeg音视频开发从入门到精通——ffmpeg下载编译与安装
  • php、Java、python房屋租赁系统 在线租房系统 房源出租平台(源码、调试、LW、开题、PPT)
  • 纵向合并单元格——table
  • Python爬虫入门篇!
  • 【QNX+Android虚拟化方案】101 - Android GVM 虚拟网络 Virt-Net 配置
  • YOLOv9模型训练或测试过程中,无法打印模型的GFLOPs
  • shell脚本编程(数组)
  • 智能家居系统(基于STM32F103C8T6标准库+FreeRTOS+Qt串口开发实现)
  • 【系统架构设计师-2010年】综合知识-答案及详解
  • Java 7.3 - 分布式 id
  • QT教程:start()和startTimer()的区别
  • 第五章 Pytorch完成线性回归
  • [NodeJS] 关于Buffer
  • Akka系列(七):Actor持久化之Akka persistence
  • Bootstrap JS插件Alert源码分析
  • Date型的使用
  • Git初体验
  • Puppeteer:浏览器控制器
  • python学习笔记 - ThreadLocal
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • Vue 重置组件到初始状态
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 多线程 start 和 run 方法到底有什么区别?
  • 关于字符编码你应该知道的事情
  • 猴子数据域名防封接口降低小说被封的风险
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 基于游标的分页接口实现
  • 区块链将重新定义世界
  • 删除表内多余的重复数据
  • 手机app有了短信验证码还有没必要有图片验证码?
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 仓管云——企业云erp功能有哪些?
  • #define 用法
  • #数据结构 笔记三
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (vue)el-tabs选中最后一项后更新数据后无法展开
  • (办公)springboot配置aop处理请求.
  • (纯JS)图片裁剪
  • (函数)颠倒字符串顺序(C语言)
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (新)网络工程师考点串讲与真题详解
  • (转)scrum常见工具列表
  • (转)shell调试方法
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • *1 计算机基础和操作系统基础及几大协议
  • .gitignore文件---让git自动忽略指定文件
  • .net core 6 集成和使用 mongodb
  • .NET Core中的去虚
  • .NET Framework 4.6.2改进了WPF和安全性
  • .net Signalr 使用笔记