问题描述

思路:

1.首先生成n个括号
2.左括号数量(记为l)不超过n
3.右括号数量(记为r)不超过n,且优先生成左括号(即 l < r)
4.需要设计一个递归式h(str,l,r)

// 一开始,str = '', l = 0, r= 0
// 第一步进去,添加左括号, str='(', l = 1, r =0
// 然后因为 l < n . r < l 所以会有2个h.
// 当l === n && r === n 时,保存当前字符串
// 实现如下
let retArr = [];
function h (str, l , r) {if(l === n && r === n ) {retArr.push( str)}if( l < n ) {h( str +'(' , l+1,r)}if(r < l) {h( str + ')', l, r+1)}
}

总体代码

var generateParenthesis = function(n) {let retArr = [];function h(str, l, r){if(l === n && r === n){retArr.push(str)}if( l < n){h(str + '(', l+1, r)}if( r < l){h(str + ')', l, r+1)}}h('',0,0)return retArr
};

算法 --- 递归生成括号相关推荐

  1. 算法—递归生成斐波那契数列

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.递归生成斐波那契数列 二.使用步骤 1.伪代码 2.c 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如 ...

  2. 算法题目——生成括号匹配

    题目链接:剑指offer.85 生成 n 对括号共需要 2n 步,每一步都面临两个选项,即生成左括号或者右括号,题目要求返回所有的情况,所以本问题很适合采用回溯法. 在生成左右括号时存在两个限制条件, ...

  3. 数据结构与算法——递归、回溯与分治

    文章目录 1.预备知识 1.1 递归 1.2 回溯 1.3 位运算 2.子集 2.1 题目描述 2.2 解题思路--回溯递归法 2.3 C++实现 2.4 解题思路--位运算法 2.5 位运算实现 3 ...

  4. 数据结构与算法——递归、回溯与分治汇总整理

    目录 预备知识:递归函数与回溯算法 例1-a:求子集(medium)(回溯法.位运算法) 例1-b:求子集2(medium)(回溯法) 例1-c:组合数之和2(medium)(回溯法.剪枝) 例2:生 ...

  5. 负荷分配问题的动态规划算法递归实现

    本文是参加工作之初,研究水电站优化运行时所写,已成为遥远的过去了.记得当时好像是要投下稿,所以煞有介事的写了中英文摘要.学生时代曾经研究过用演化类算法求解负荷分配问题,那是刻意往"新&quo ...

  6. Java 数据结构和算法 - 递归

    Java 数据结构和算法 - 递归 什么是递归 背景:数学归纳法证明 基本递归 printing numbers in any base 它为什么有效 如何工作 递归太多是危险的 树 数值应用 模幂运 ...

  7. GIS算法基础——左转算法拓扑生成

    GIS基础算法目录 GIS算法基础--左转算法拓扑生成 GIS算法基础--矢量数据压缩道格拉斯普克压缩算法(非递归实现) GIS算法基础--左转算法拓扑生成 GIS基础算法目录 基于JavaScrip ...

  8. Goolge新AI算法实时生成3D场景 | 可下载

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 3D模型又有新玩法,Goolge的新AI算法实时生成3D场景!对于3D.AR/VR来说,三维重建.模型 ...

  9. DL之RNN:人工智能为你写代码——基于TF利用RNN算法实现生成编程语言代码(C++语言)、训练测试过程全记录

    DL之RNN:基于TF利用RNN算法实现生成编程语言代码(C语言).训练&测试过程全记录 目录 输出结果 监控模型 训练&测试过程全记录 训练的数据集展示 输出结果 1.test01 ...

最新文章

  1. CSS表格中的一些属性
  2. C#中Invoke的用法
  3. 云平台已经成为发生网络攻击的重灾区
  4. 黑胡桃木php,揭秘美国黑胡桃木的美
  5. dma接收双缓存 stm32_「STM32学习笔记」USART 新特性
  6. [mybatis]映射文件_select_返回集合(List,Map)
  7. 如何修复无效的目标版本:Maven Build中的1.7、1.8、1.9或1.10错误
  8. C++学习——拷贝构造函数和移动构造函数
  9. 使用Kylin导入JDBC数据源遇到的问题
  10. SparkSQL错误:Could not find uri with key [dfs.encryption.key.provider.uri] to create a keyProvider...
  11. 高德地图经纬度距离数据库排序,Spring Data JPA,Kotlin 实现版本
  12. Java 案例七 超市管理系统(商品清单,商品添加,商品删除,修改库存)
  13. 前端中适配各种手机模式的一种解决办法
  14. 测试期货系统的软件,期货交易系统测试怎么做?不会软件执行一样可以!
  15. 问题 : 找出直系亲属
  16. NDK OpenGL ES 3.0 开发(五):FBO 离屏渲染
  17. html5绘制火柴棒人物
  18. 高端投影仪有哪些品牌,当贝X3激光投影仪市占比达53.7%
  19. java 强制走catch_关于java:IDE强制使用try / catch包围并且不引发异常
  20. excel切片器联动

热门文章

  1. odd raio值 是什麼_乳化油相所需的HLB值
  2. 人工智能选go还是python_深圳人工智能学Python还是go,真实经历分享
  3. vbs打开软件光标停在第一个输入框_三维设计软件,3DMAX最全快捷键大全,赶快收藏哦...
  4. 基站位置查询系统_木牛导航网络基站服务免费了!——更便捷、更高效、更省心!...
  5. 团队行为心理学读书笔记(2)招聘背后的心理学
  6. GPU Gems1 - 15 逐像素光照的可见性管理
  7. hdfs中8031是什么端口号_在宿主机如何访问docker中hadoop的hdfs:ip:9000啊, 端口映射出来啊...
  8. Faster R-CNN的安装及测试(Python版本和Matlab版本)
  9. 获取网络时间,在不同时间触发事件
  10. 支付宝APP支付 统一下单 php服务端 tp5