leetcode22.括号生成

这道题目是一道回溯题,特殊之处在于右括号选择时,右括号的当前数量必须少于左括号的数量

java 复制代码
class Solution {

    private List<String> result;

    private void generateParenthesis(int n, StringBuilder stringBuilder, int open, int close) {
        if (2*n == stringBuilder.length()) {
            result.add(stringBuilder.toString());
        }
        if (open < n) {
            stringBuilder.append('(');
            generateParenthesis(n, stringBuilder, open + 1, close);
            stringBuilder.deleteCharAt(stringBuilder.length() - 1);
        }
        if (close < open) {
            stringBuilder.append(')');
            generateParenthesis(n, stringBuilder, open, close + 1);
            stringBuilder.deleteCharAt(stringBuilder.length() - 1);
        }
    }

    public List<String> generateParenthesis(int n) {
        result = new ArrayList<>();
        generateParenthesis(n, new StringBuilder(), 0, 0);
        return result;
    }
}
相关推荐
泡海椒4 分钟前
JQuick-Excel 项目定位与适用场景:声明式 Java Excel 的边界
java·开发语言·excel
AC赳赳老秦7 分钟前
财报附注表格精准提取:OpenClaw 从 PDF 年报附注挖掘隐藏明细,补齐财务分析维度
java·汇编·c++·python·青少年编程·deepseek·openclaw
Zane19949 分钟前
贪心算法大多靠不住,为什么Dijkstra的贪心选择偏偏能保证全局最优
算法
箓维13 分钟前
线程的优缺点,与进程的关联和差异
java·服务器·笔记
CQU_JIAKE13 分钟前
9.26【A】
算法
曹牧15 分钟前
Spring MVC:@RequestMapping
java·spring·mvc
-cywen-33 分钟前
GROUNDHOG总体版
人工智能·深度学习·算法
曹牧35 分钟前
Spring MVC : Controller 层URL划分
java·运维·服务器·前端
_不会dp不改名_36 分钟前
leetcode_1614嵌套括号的最大深度
算法·leetcode·职场和发展
sali-tec36 分钟前
C# 基于OpenCv的视觉工作流-章110-YOLO 实例分割
图像处理·人工智能·opencv·算法·yolo·计算机视觉