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);
    }
}
相关推荐
广州灵眸科技有限公司19 分钟前
瑞芯微(EASY EAI)RV1126B 模型部署API说明
linux·开发语言·网络·人工智能·深度学习·算法·yolo
東隅已逝,桑榆非晚20 分钟前
深⼊理解指针(5)
c语言·笔记·算法
lwf00616424 分钟前
顺序模型学习日记
算法
_日拱一卒28 分钟前
LeetCode:199二叉树的右视图
算法·leetcode·职场和发展
The Chosen One98535 分钟前
分享对dp题目的理解-不断更新ing
笔记·算法·深度优先·动态规划·dp
有时间要学习39 分钟前
【无标题】
算法
re林檎40 分钟前
算法札记——5.15
算法
鱼子星_44 分钟前
【数据结构与算法】OJ题目详解(一)-单链表:从易到难的面试OJ题目
c语言·数据结构·算法·链表·面试·职场和发展
人道领域1 小时前
【LeetCode刷题日记】递归与回溯实战 257.二叉树的所有路径——一篇文章彻底搞懂回溯
开发语言·python·算法·leetcode
ulias2121 小时前
leetcode热题 - 7
数据结构·算法·leetcode