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);
    }
}
相关推荐
yang_B6211 分钟前
光斑中心检测
人工智能·算法
苦瓜小生1 分钟前
【Leetcode Hot 100刷题路线】| 找工作速刷 | 第23题 - [49] - 字母异位词分组
算法·leetcode·职场和发展
炽烈小老头13 分钟前
【每天学习一点算法 2026/03/26】合并区间
学习·算法
代码探秘者14 分钟前
【算法篇】5.链表
java·数据结构·人工智能·python·算法·spring·链表
1104.北光c°15 分钟前
Leetcode3.无重复字符的最长子串 HashSet+HashMap 【hot100算法个人笔记】【java写法】
java·开发语言·笔记·程序人生·算法·leetcode·滑动窗口
MicroTech202521 分钟前
微算法科技(NASDAQ: MLGO)支持区块链的工业物联网隐私保护新方案:基于格的可链接环签名技术
科技·算法·区块链
zhenxin012221 分钟前
SpringMVC 请求参数接收
前端·javascript·算法
C_Si沉思26 分钟前
C++与硬件交互编程
开发语言·c++·算法
tankeven28 分钟前
HJ148 迷宫寻路
c++·算法
老虎062738 分钟前
LeetCode热题100 刷题笔记(第一天)哈希 「两数之和」
笔记·算法·leetcode