力扣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);
        }
    }
}
相关推荐
Touper.3 分钟前
JavaSE -- 泛型详细介绍
java·开发语言·算法
sun0077005 分钟前
std::forward作用
开发语言·c++·算法
静若繁花_jingjing20 分钟前
Redis线程模型
java·数据库·redis
JoernLee23 分钟前
机器学习算法:支持向量机SVM
人工智能·算法·机器学习
V我五十买鸡腿32 分钟前
顺序栈和链式栈
c语言·数据结构·笔记·算法
hello早上好41 分钟前
CGLIB代理核心原理
java·spring
魔镜魔镜_谁是世界上最漂亮的小仙女42 分钟前
java-web开发
java·后端·架构
爱吃小土豆豆豆豆43 分钟前
定时器和守护线程
java
我爱一条柴ya1 小时前
【AI大模型】线性回归:经典算法的深度解析与实战指南
人工智能·python·算法·ai·ai编程
Seven971 小时前
了解GC吗?什么是GC?
java