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);
    }
}
相关推荐
自然常数e20 分钟前
深入理解指针(6)
c语言·数据结构·算法·visual studio
Xの哲學21 分钟前
Linux VxLAN深度解析: 从数据平面到内核实现的全面剖析
linux·服务器·算法·架构·边缘计算
TL滕24 分钟前
从0开始学算法——第十八天(分治算法练习)
笔记·学习·算法
月明长歌37 分钟前
【码道初阶】【LeetCode 958】判定完全二叉树:警惕 BFS 中的“管中窥豹”陷阱
算法·leetcode·宽度优先
一直都在5721 小时前
数据结构入门:二叉排序树的构建与相关算法
数据结构·算法
_Minato_2 小时前
数据结构知识整理——复杂度的计算
数据结构·经验分享·笔记·算法·软考
listhi5202 小时前
针对燃油运输和车辆调度问题的蚁群算法MATLAB实现
前端·算法·matlab
月明长歌2 小时前
【码道初阶】【LeetCode 102】二叉树层序遍历:如何利用队列实现“一层一层切蛋糕”?
java·数据结构·算法·leetcode·职场和发展·队列
星诺算法备案2 小时前
读懂大模型备案流程,开启技术安全应用新征程
人工智能·算法·推荐算法·备案
Loo国昌2 小时前
大型语言模型推理范式演进:从提示工程到思维算法
人工智能·算法·语言模型·自然语言处理