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;
    }
}
相关推荐
C++ 老炮儿的技术栈7 小时前
Qt 编写 TcpClient 程序 详细步骤
c语言·开发语言·数据库·c++·qt·算法
KYGALYX7 小时前
逻辑回归详解
算法·机器学习·逻辑回归
222you7 小时前
Redis的主从复制和哨兵机制
java·开发语言
铉铉这波能秀7 小时前
LeetCode Hot100数据结构背景知识之集合(Set)Python2026新版
数据结构·python·算法·leetcode·哈希算法
参.商.7 小时前
【Day 27】121.买卖股票的最佳时机 122.买卖股票的最佳时机II
leetcode·golang
江湖有缘7 小时前
零基础入门:使用 Docker 快速部署 Organizr 个人主页
java·服务器·docker
踢足球09297 小时前
寒假打卡:2026-2-8
数据结构·算法
chilavert3187 小时前
技术演进中的开发沉思-357:重排序(下)
java·后端
Boop_wu7 小时前
Spring生态
java·后端·spring
IT猿手7 小时前
基于强化学习的多算子差分进化路径规划算法QSMODE的机器人路径规划问题研究,提供MATLAB代码
算法·matlab·机器人