力扣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 分钟前
Baumer相机铸件气孔与缩松识别:提升铸造良品率的 6 个核心算法,附 OpenCV+Halcon 实战代码!
人工智能·opencv·算法·安全·计算机视觉·堡盟相机·baumer相机
葫三生10 分钟前
存在之思:三生原理与现象学对话可能?
数据库·人工智能·神经网络·算法·区块链
小学仔12 分钟前
科大镜像科大镜像科大镜像
java
小旭952713 分钟前
Java 反射详解
java·开发语言·jvm·面试·intellij-idea
Evand J14 分钟前
【MATLAB例程】无人机三维路径规划|A*,RRT(快速随机树算法), APF(人工势场法)算法对比|可自定义起终点、障碍物坐标。附下载链接
算法·matlab·无人机·astar·路径规划·rrt·apf
HalvmånEver15 分钟前
Linux:线程创建与终止上(线程五)
java·linux·jvm
m0_7482331722 分钟前
PHP版本演进:从7.x到8.x全解析
java·开发语言·php
qq_124987075323 分钟前
基于springboot的林业资源管理系统设计与实现(源码+论文+部署+安装)
java·vue.js·spring boot·后端·spring·毕业设计·计算机毕业设计
少许极端27 分钟前
算法奇妙屋(二十七)-全排列与子集问题
算法·剪枝·回溯·递归
sali-tec29 分钟前
C# 基于OpenCv的视觉工作流-章20-仿射变换
图像处理·人工智能·opencv·算法·计算机视觉