LeetCode LCR 085 括号生成

题目

解答

java 复制代码
class Solution {
  public List<String> generateParenthesis(int n) {
    List<String> results = new ArrayList<>();
    StringBuilder sb = new StringBuilder();
    generateParenthesis(n, n, sb, results);
    return results;
  }

  void generateParenthesis(int left, int right, StringBuilder sb,
                            List<String> results) {
    if (left == 0 && right == 0) {
      results.add(sb.toString());
      return;
    }

    if (left > 0) {
      sb.append("(");
      generateParenthesis(left - 1, right, sb, results);
      sb.deleteCharAt(sb.length() - 1);
    }
    if (left < right && right > 0) {
      sb.append(")");
      generateParenthesis(left, right - 1, sb, results);
      sb.deleteCharAt(sb.length() - 1);
    }
  }
}

总结

回溯法。

注意左括号在前,右括号在后,即左括号的数量要小于右括号的数量。

相关推荐
GuWenyue13 小时前
传统Agent工具两大痛点!300行代码落地MCP跨语言工具,彻底解耦LLM与工具
前端·人工智能·算法
我叫洋洋14 小时前
C ++ [ hello world ]
c语言·c++·算法
奋发向前wcx15 小时前
y1,y2总复习笔记5 2026.7.19
数据结构·笔记·算法
战族狼魂19 小时前
高频面试题精选:分治与AI Agent架构
人工智能·算法·大模型·大语言模型
李剑一19 小时前
你用过网易的将军令嘛?它底层实现账号保护的原理相当简单粗暴
算法
Scott9999HH19 小时前
告别流量波动玄学!从法拉第电磁定律到底层 C/C++ 流量累积算法,深度解密工业级电磁流量计选型与开发
c语言·c++·算法
中达瑞和-高光谱·多光谱19 小时前
1nm到8nm光谱分辨率,你的应用该选哪款光谱相机?
算法·高光谱·高光谱相机
香辣牛肉饭20 小时前
【算法】动态规划 最长公共子序列(LCS)
经验分享·笔记·算法·动态规划
旖-旎21 小时前
LeetCode 279:完全平方数(完全背包)—— 题解
c++·算法·leetcode·动态规划·背包问题