回溯----5.括号生成

题目链接

/**

            合法括号生成规则:

                            第一个括号必须是左括号(第一个为右必定无法闭合)

                            选择过程中左括号数量必须小于n才可选择左括号(大于n则一定有括号无法闭合)

                            左括号数量必须大于右括号数量才可选择右括号(相等代表所有前驱括号都已闭合)

            所需参数:

                            left 记录已选择左括号数

                            right 记录已选择右括号数

            限制条件:

                            由于括号必定从左括号开始的特性,左括号优先级高于右括号

                            left < n --> 避免左括号超量,导致无足够右括号与之闭合

                            left > right --> 括号未全部闭合,可选择右括号与之闭合

                            两条件共同保证括号生成合法性              

*/

class Solution {//保存结果集private List<String> res = new ArrayList<>();//保存单次结果private StringBuilder tempResult = new StringBuilder();private int n;public List<String> generateParenthesis(int n) {/**合法括号生成规则:第一个括号必须是左括号(第一个为右必定无法闭合)选择过程中左括号数量必须小于n才可选择左括号(大于n则一定有括号无法闭合)左括号数量必须大于右括号数量才可选择右括号(相等代表所有前驱括号都已闭合)所需参数:left 记录已选择左括号数right 记录已选择右括号数限制条件:由于括号必定从左括号开始的特性,左括号优先级高于右括号left < n --> 避免左括号超量,导致无足够右括号与之闭合left > right --> 括号未全部闭合,可选择右括号与之闭合两条件共同保证括号生成合法性              */this.n = n;backtrack(0,0);return res;}private void backtrack(int left, int right) {//生成完毕,保存结果if(left + right == 2*n) {res.add(tempResult.toString());return;}//左括号未到上限可选择左括号if(left < n) { tempResult.append("(");left++;backtrack(left,right);//回溯left--;tempResult.deleteCharAt(tempResult.length() - 1);}//左括号未全部与右括号匹配,可选择右括号if(left > right) {tempResult.append(")");right++;backtrack(left,right);//回溯right--;tempResult.deleteCharAt(tempResult.length() - 1);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/910444.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/910444.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【weaviate】分布式数据写入之LSM树深度解析:读写放大的权衡

文章目录 一、LSM树的设计哲学&#xff1a;写优化的根本动机1、 传统B树存储的性能瓶颈2、 LSM树的根本性创新 二、写入路径的深度技术分析1、 WAL机制的精密设计2、 MemTable的数据结构3、 刷盘&#xff08;Flush&#xff09;过程的技术细节 三、Compaction策略&#xff1a;LS…

Pygame 大鱼吃小鱼

【Pygame 大鱼吃小鱼】是一款基于Python编程语言和Pygame库开发的趣味游戏。Pygame是Python中一个广泛用于开发2D游戏的开源模块集合&#xff0c;它提供了丰富的功能&#xff0c;如窗口管理器、事件处理、图形绘制等&#xff0c;使得初学者也能快速上手创建游戏。 这段 Python …

【为什么在触发的事件中修改控件属性需要使用`Invoke`】

在C#中&#xff0c;特别是在使用Windows Forms或WPF等GUI框架时&#xff0c;控件的属性和状态通常只能在创建它们的线程&#xff08;即UI线程&#xff0c;即主线程或用户界面线程&#xff09;中直接修改。这是由于这些框架的设计基于单线程模型&#xff0c;其中所有与用户界面&…

Android 当apk是系统应用时,无法使用webView的解决方案

最近在做项目时&#xff0c;遇到了一个无法使用webView的问题&#xff0c;apk是系统应用&#xff0c;点击加载webView时应用就是崩溃&#xff0c;原因是系统应用时&#xff0c;Android会觉得webView不安全&#xff0c;不避让加载。 解决的思路就是使用映射&#xff0c;把原生的…

ArcGIS Pro无插件加载(无偏移)天地图!一次添加长久使用

以前我们介绍过&#xff1a;ArcGIS无插件加载&#xff08;无偏移&#xff09;天地图。这次我们来介绍ArcGIS Pro中如何添加天地图。 我们将通过从天地图官网自己添加服务链接并添加至收藏的方式以及应急的方法来做本次的介绍。天地图的数据主要包括影像、电子地图、地形图等。我…

Go堆内存管理

# Go堆内存管理 1. Go内存模型层级结构 Golang内存管理模型与TCMalloc的设计极其相似。基本轮廓和概念也几乎相同&#xff0c;只是一些规则和流程存在差异。 2. Go内存管理的基本概念 Go内存管理的许多概念在TCMalloc中已经有了&#xff0c;含义是相同的&#xff0c;只是名字…

零售 EDI:Chewy EDI 项目注意事项

在此前的文章《供应商对接Chewy的EDI需求》中&#xff0c;介绍了Chewy的EDI需求&#xff0c;本文主要为大家分享Chewy对于各个业务单据的细节性需求&#xff0c;了解这些细节性注意事项将帮助企业快速基于知行软件提供的EDI服务与Chewy建立EDI对接。 基于知行之桥EDI系统能够通…

Android录制视频自带铺满多行水印

文章目录 引言环境要求代码实现总结 引言 之前做过几种水印需求&#xff0c;这篇文章是关于使用Android原生库开发录制视频自带满帧文字水印。 环境要求 Android 7.0以上Android Studio &#xff0c;官方开发者官网视频录制功能参考开源库PictureSelector的camerax库 //用到的…

观远ChatBI:加速零售消费企业数据驱动的敏捷决策

近年来&#xff0c;随着国产大模型&#xff08;如DeepSeek&#xff09;的快速发展&#xff0c;企业对智能化数据分析工具的需求日益增长。观远数据推出的ChatBI&#xff0c;基于大语言模型&#xff08;LLM&#xff09;打造&#xff0c;旨在通过自然语言交互降低数据分析门槛&am…

鸿蒙NEXT-鸿蒙三层架构搭建,嵌入HMRouter,实现便捷跳转,新手攻略。(1/3)

接下来&#xff0c;我将手把手带领大家去完善&#xff0c;搭建一个鸿蒙的三层架构&#xff0c;另实现HMRouter的嵌入。完成后&#xff0c;大家可任意跳转页面&#xff0c;在三层架构中&#xff0c;书写属于自己的篇章。 第0步&#xff0c;项目与AGC华为控制台关联起来 首先AG…

鸿蒙ArkTs仿网易云音乐项目:架构剖析与功能展示

鸿蒙ArkTs仿网易云音乐项目&#xff1a;架构剖析与功能展示 一、引言 在移动应用开发的浪潮中&#xff0c;音乐类应用始终占据着重要的一席之地。网易云音乐凭借其丰富的音乐资源、个性化的推荐算法和独特的社交互动功能&#xff0c;深受广大用户的喜爱。本文将详细介绍一个基…

【web 安全】从 HTTP 无状态到现代身份验证机制

文章目录 Web 安全与系统设计Web存在的问题&#xff1a;Web 是无状态的解决方案一、早期解决方案&#xff1a;Session Cookie 的诞生二、第二阶段&#xff1a;Token 的出现&#xff08;前后端分离 移动端的解决方案&#xff09;三、分析总结&#xff1a;1.早期版本&#xff1…

FlutterUnit TolyUI | 布局游乐场

FlutterUnit 基于 TolyUI 大大简化了界面构建的代码复杂程度&#xff0c;因此之前想要实现的一些小功能&#xff0c;就可以轻松支持。布局游乐场是通过交互的方式来 直观体验 组件的布局特性&#xff0c;从而更易学和掌握。目前 FlutterUnit 已在 知识集录模块新增了 布局宝库&…

【数据分析一:Data Collection】信息检索

本节内容含有各典型数据集的推荐&#xff0c;以及其网址&#xff0c;大家根据需要自取 一、检索 最简单、最灵活的数据获取方式就是依靠检索&#xff1a; Google&#xff1a;更适合搜索英文信息 Google Dataset Search&#xff08;Google 数据集搜索&#xff09; 网址&…

23.ssr和csr的对比?如何依赖node.js实现

1.为什么说ssr 的node中间层请求速度快。相当于内网&#xff1f; 那vue.js加载怎么没有ssr和csr的说法啊 第一问&#xff1a;为什么说 SSR 的 Node 中间层请求速度快&#xff1f;是不是相当于内网&#xff1f; ✅ 是的&#xff0c;本质上就是「内网请求」&#xff0c;所以更快…

力扣刷题(第六十四天)

灵感来源 - 保持更新&#xff0c;努力学习 - python脚本学习 第一个错误的版本 解题思路 初始化左右边界&#xff1a;左边界 left 1&#xff0c;右边界 right n。二分查找循环&#xff1a; 计算中间版本号 mid。若 mid 是错误版本&#xff0c;说明第一个错误版本在 [le…

【图像处理入门】11. 深度学习初探:从CNN到GAN的视觉智能之旅

摘要 深度学习为图像处理注入了革命性动力。本文将系统讲解卷积神经网络(CNN)的核心原理,通过PyTorch实现图像分类实战;深入解析迁移学习的高效应用策略,利用预训练模型提升自定义任务性能;最后揭开生成对抗网络(GAN)的神秘面纱,展示图像生成与增强的前沿技术。结合代…

C++法则4: 如果一个构造函数的第一个参数是自身类类型的引用,且任何额外参数都有默认值,则此构造函数是拷贝构造函数。

C法则4&#xff1a; 如果一个构造函数的第一个参数是自身类类型的引用&#xff0c;且任何额外参数都有默认值&#xff0c;则此构造函数是拷贝构造函数。 拷贝构造函数的定义&#xff1a; 第一个参数是自身类类型的引用&#xff1a; 必须是引用&#xff08;通常为const引用&…

从头搭建环境安装k8s遇到的问题

基本信息 master节点IP&#xff1a; 172.31.0.3 node01节点IP&#xff1a;172.31.0.4 node02节点IP&#xff1a;172.31.0.5 子网掩码&#xff1a;255.255.0.0 网关&#xff1a;172.31.0.2 DNS:114.114.114.114 安装前要检查的信息 检查三台主机的mac地址是否重复&#xff1a…

Flask入门指南:从零构建Python微服务

1. Flask 是什么&#xff1f; Flask 是一个 微框架&#xff08;Microframework&#xff09;&#xff0c;特点包括&#xff1a; 轻量灵活&#xff1a;核心仅包含路由和模板引擎&#xff0c;其他功能通过扩展实现易于学习&#xff1a;代码直观&#xff0c;适合快速开发小型应用…