力扣HOT100 - 22. 括号生成

解题思路:

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

    public List<String> generateParenthesis(int n) {
        if (n <= 0) return res;
        getParenthesis("", n, n);
        return res;
    }

    private void getParenthesis(String str, int left, int right) {
        if (left == 0 && right == 0) {
            res.add(str);
            return;
        }
        if (left == right) {
            // 剩余左右括号数相等,下一个只能用左括号
            getParenthesis(str + "(", left - 1, right);
        } else if (left < right) {
            // 剩余左括号小于右括号,下一个可以用左括号也可以用右括号
            if (left > 0) getParenthesis(str + "(", left - 1, right);
            if (right > 0) getParenthesis(str + ")", left, right - 1);
        }
    }
}
相关推荐
2301_764441336 分钟前
Python构建输入法应用
开发语言·python·算法
s***117013 分钟前
常见的 Spring 项目目录结构
java·后端·spring
AI科技星16 分钟前
为什么变化的电磁场才产生引力场?—— 统一场论揭示的时空动力学本质
数据结构·人工智能·经验分享·算法·计算机视觉
O***P57119 分钟前
记录 idea 启动 tomcat 控制台输出乱码问题解决
java·tomcat·intellij-idea
7***477120 分钟前
在2023idea中如何创建SpringBoot
java·spring boot·后端
2***c43524 分钟前
解决 IntelliJ IDEA 中 Tomcat 日志乱码问题的详细指南
java·tomcat·intellij-idea
j***788825 分钟前
【Spring】IDEA中创建Spring项目
java·spring·intellij-idea
豆沙沙包?36 分钟前
2025年--Lc293-784. 字母大小写全排列(回溯)--java版
java·开发语言
q***996343 分钟前
【MyBatisPlus】MyBatisPlus介绍与使用
java