LeetCode:22括号生成

java 复制代码
class Solution {
    List<String> res = new ArrayList<>();

    public List<String> generateParenthesis(int n) {
        backtrack(new StringBuilder(), 0, 0, n);
        return res;    
    }

    //left代表已经用掉的左括号的数量,right代表用掉的右括号的数量
    private void backtrack(StringBuilder path, int left, int right, int n){
        if(path.length() == n * 2){
            res.add(path.toString());
            return;
        }
        //加左括号
        if(left < n){
            path.append("(");
            backtrack(path, left + 1, right, n);
            path.deleteCharAt(path.length() - 1);
        }
        //加右括号
        if(right < left){
            path.append(")");
            backtrack(path, left, right + 1, n);
            path.deleteCharAt(path.length() - 1);
        }
    }
}

必须在right小于left的时候才能加")",不然提前加上会造成结果不合法

相关推荐
Sagittarius_A*2 小时前
后量子密码|前置基础 03|数字签名运行逻辑:签名签发、核验原理与实际业务应用
算法·信息安全·密码学·数字签名·后量子密码
DBA小马哥2 小时前
向量数据库入门到进阶:Embedding、ANN算法与RAG落地的关键术语
数据库·算法·embedding
Luhui Dev2 小时前
如何在 WorkBuddy 中使用大角几何:从 MCP 接入到 AI 几何作图
人工智能·数学·算法·agent·luhuidev
Smilecoc2 小时前
决策树(五):决策树回归
算法·决策树·回归
小龙报3 小时前
【优选算法】1.搜索插入位置 2.x的平方根
java·c语言·数据结构·c++·python·算法·蓝桥杯
Hi李耶3 小时前
【LeetCode】15.三数之和
java·算法·leetcode
我命由我123453 小时前
四流一致(合同流、业务流、资金流、发票流)
经验分享·学习·职场和发展·求职招聘·职场发展·产品经理·学习方法
rannn_1114 小时前
【力扣hot100】链表专题|21、2、19、24、92、25
java·数据结构·算法·leetcode·链表·开发
SNAKEpc121384 小时前
OpenGL(十五)- 着色器语言GLSL
c语言·c++·线性代数·算法·矩阵·图形渲染·着色器
AI服务老曹4 小时前
AI视频分析API完整流程:设备、算法与告警接口接入指南
人工智能·算法·音视频