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;
    }
}
相关推荐
橘子131 分钟前
Linux线程——一些概念(七)
java·redis·缓存
NAGNIP1 分钟前
才发现TensorBoard是个可视化的神器!
算法
magic_kid_20105 分钟前
IDEA 复制到 Windows 远程桌面失败的原因与解决方案
java·ide·intellij-idea
风月歌6 分钟前
基于微信小程序的学习资料销售平台源代码(源码+文档+数据库)
java·数据库·mysql·微信小程序·小程序·毕业设计·源码
_dindong7 分钟前
算法杂谈:回溯路线
数据结构·算法·动态规划·bfs·宽度优先
咋吃都不胖lyh8 分钟前
详解 UCB 算法的置信区间与核心逻辑(通俗 + 公式 + 实例)
人工智能·算法·机器学习
巴拉巴拉~~9 分钟前
KMP 算法通用步进器组件:KmpStepperWidget 横向 / 纵向 + 匹配进度 + 全样式自定义
java·服务器·开发语言
贺今宵11 分钟前
使用idea启动一个springboot项目
java·ide·intellij-idea
DanyHope16 分钟前
LeetCode 两数之和:从 O (n²) 到 O (n),空间换时间的经典实践
前端·javascript·算法·leetcode·职场和发展
伍一5122 分钟前
芋道框架下的进销存升级(三):Yudao-ERP2异步导出/导入Excel的设计与实现
java·excel·异步导出excel