22. 括号生成

22. 括号生成

回溯

java 复制代码
class Solution {
    List<String> res = new ArrayList<>();
    StringBuilder path = new StringBuilder();  // path推荐这种写法

    public List<String> generateParenthesis(int n) {
        backtrack(n, 0, 0);
        return res;
    }

    void backtrack(int n, int l, int r){
        if(r > l || l > n || r > n) return;
        if(l == n && r == n){
            res.add(path.toString());
            return;
        }

        path.append('(');
        backtrack(n, l + 1, r);
        path.deleteCharAt(path.length() - 1);

        path.append(')');
        backtrack(n, l, r + 1);
        path.deleteCharAt(path.length() - 1);
    }
}
相关推荐
月明长歌9 分钟前
【码道初阶】Leetcode155踩坑最小栈问题:最小栈:算法对了,却输给了 Java 的 “==“?
java·算法·
我送炭你添花15 分钟前
Pelco KBD300A 模拟器:05.校验算法终极对比 + 完整 100+ 指令封装 + KBD300A 所有隐藏功能函数化
python·算法·自动化·运维开发
DuHz19 分钟前
汽车FMCW雷达互扰下的快速目标检测:谱峰累积法与泊松CFAR精读与推导
论文阅读·算法·目标检测·汽车·信息与通信·信号处理
2401_8370885020 分钟前
算法边界情况处理套路总结
算法
烛衔溟36 分钟前
C语言图论:最短路径算法
c语言·算法·图论·dijkstra·bellman-ford·最短路径
烛衔溟38 分钟前
C语言图论:最小生成树算法
c语言·算法·图论·最小生成树·kruskal·prim
Yzzz-F1 小时前
算法竞赛进阶指南 进阶搜索
算法·深度优先
weixin_437546331 小时前
注释文件夹下脚本的Debug
java·linux·算法
月明长歌1 小时前
【码道初阶】【LeetCode 572】另一棵树的子树:当“递归”遇上“递归”
算法·leetcode·职场和发展
月明长歌1 小时前
【码道初阶】【LeetCode 150】逆波兰表达式求值:为什么栈是它的最佳拍档?
java·数据结构·算法·leetcode·后缀表达式