zoukankan      html  css  js  c++  java
  • --算法恩仇录--实战篇--力扣(LeetCode)--022-括号生成--

    这道题直接递归模拟添加括号。

    注意不要放置过多的右括号。右括号和左括号是一一对应的。

    代码:

    /**
     * @param {number} n
     * @return {string[]}
     */
    //使用递归
    //每一个括号生成都是一一对应的关系
    let list = [];
    function traval(l, r, n, s){ //左括号个数,右括号个数,总的括号数量,当前生成的字符串
        if(l === r& l===n){      //如果左右括号都使用完毕,则结束递归,返回生成的字符串
            list.push(s);
            return;
        }
        if(l > r){              // 如果已经放置的左括号数量比右括号多,则可以选择放置一个右括号
            traval(l, r+1, n, s+')');
        }
        if(l < n){             //如果左括号没有放完,则可以继续放置一个左括号
            traval(l+1, r, n, s+'(');
        }
    
    }
    var generateParenthesis = function(n) {
        list = [];
        traval(0,0,n,'');
        return list;
    };

    结果为:

    执行用时:88 ms, 在所有 JavaScript 提交中击败了40.06%的用户
    内存消耗:37.9 MB, 在所有 JavaScript 提交中击败了86.12%的用户
     
    吐槽:写前端页面写多了,太久没有写递归,脑子有点笨,一开始竟然没写出来。。。
    离大侠再近一步!
  • 相关阅读:
    Mybatis与Spring集成
    Mybatis 多对多
    Mybatis表关联多对一
    Mybatis表关联一对多
    Mybatis增删改查(CURD)
    Mybatis接口注解
    MyBatis环境配置及入门
    MyBatis教程
    Spring JDBC StoredProcedure类示例
    Spring JDBC SqlUpdate类示例
  • 原文地址:https://www.cnblogs.com/Samo-Li/p/13602472.html
Copyright © 2011-2022 走看看