力扣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);
        }
    }
}
相关推荐
其实防守也摸鱼2 分钟前
CTF Web 6 题全解 Writeup
linux·sql·学习·算法·安全·ctf·xss
starzy19903 分钟前
Flink Task 调度任务深度剖析:从调度策略到故障恢复的完整链路
java·大数据·flink
宇明一不急7 分钟前
string和byte的相互转换
算法
开开心心_Every11 分钟前
文件查重软件批量删除重复文件释放空间
java·开发语言·c#·计算机外设·ocr·excel·perl
Wang's Blog17 分钟前
Java 项目实战: 交友项目 - 技术架构与选型剖析
java·架构·交友
我是大猴子18 分钟前
一些八股和限流措施
java
拾饵94227 分钟前
面试回答整理(Q1–Q3)
leetcode
认真的小羽❅27 分钟前
ThreadLocal 在虚拟线程间要小心
java·开发语言·jvm
美味蛋炒饭.33 分钟前
Java八股面试(4)
java·开发语言·面试
SL_staff35 分钟前
OKR落地难?技术团队如何用五层联动链打通执行断层
java·开源·全栈