HOT100——括号生成(JS实现)

简介: HOT100——括号生成(JS实现)

HOT100——括号生成(JS实现)

image.png

解题思路

  1. 本题采用DFS的思想。
  2. 只要有左括号剩余的时候,就将左括号剩余数量-1,然后继续投入DFS。
  3. 当左括号的长度小于有括号的长度时,将右括号剩余数量-1,然后继续投入DFS。

实现代码

var generateParenthesis = function(n) {
    // 定义最终返回的结果
    const res = [];
    dfs(n,n,'');
    // dfs函数
    function dfs(Lremain,Rremain,str) {
        // 如果str参数的长度等于2n,说明递归结束了
        if (str.length === 2*n) {
            res.push(str);
            return;
        }
        // 如果左括号剩余的多,将左括号放入递归
        if (Lremain > 0) {
            dfs(Lremain-1,Rremain,str+'(')
        }
        if (Lremain < Rremain) {
            dfs(Lremain,Rremain-1,str+')')
        }
    }
    return res;
};

启示

学会使用DFS的相关思想,来解决遍历所有情况的问题。

参考题解

leetcode-cn.com/problems/ge…

相关文章
|
JavaScript 前端开发
利用JavaScript实现二级联动
利用JavaScript实现二级联动 要实现JavaScript二级联动效果,首先要确定需要哪些技术: 二维数组 for in循环 new Option(text,value,true,true) add(option,null) onchange() 表单事件 HTML代码: &lt;!-- &lt;input type=&quot;text&quot; id=&quot;text&quot;&gt; --&gt; 请选择省份: &lt;select name=&quot;&quot; id=&quot;provinces&quot;&gt; &lt;!-- &lt;option value=&quot;江苏省&quot;&gt;江苏省&lt;/option&gt;
|
JavaScript 前端开发
JavaScript函数柯里化的实现原理,进来教你完成一个自己的自动实现柯里化方法
JavaScript函数柯里化的实现原理,进来教你完成一个自己的自动实现柯里化方法
167 0
|
移动开发 JavaScript weex
weex-自定义module,实现weex在iOS的本地化,js之间互相跳转,交互,传值(iOS接入weex的最佳方式)
weex-自定义module,实现weex在iOS的本地化,js之间互相跳转,交互,传值(iOS接入weex的最佳方式)
219 0
|
JavaScript
JS中实现或退出全屏
JS中实现或退出全屏
153 0
|
前端开发 JavaScript
前端:JS实现双击table单元格变为可编辑状态
前端:JS实现双击table单元格变为可编辑状态
365 0
|
JavaScript 算法 前端开发
【前端算法】JS实现数字千分位格式化
JS实现数字千分位格式化的几种思路,以及它们之间的性能比较
275 1
|
算法 前端开发 JavaScript
【前端算法】用JS实现快速排序
理解数组方法里面运用到的算法,splice 和 slice的区别
113 0
|
JavaScript 前端开发 算法
【前端算法】javaScript实现二分查找
如何使用JS实现一个合格的二分查找
191 0
|
存储 前端开发 算法
一行代码解决LeetCode实现 strStr()使用JavaScript解题|前端学算法
一行代码解决LeetCode实现 strStr()使用JavaScript解题|前端学算法
132 0
一行代码解决LeetCode实现 strStr()使用JavaScript解题|前端学算法