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);
    }
  }
}

总结

回溯法。

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

相关推荐
IT猿手6 分钟前
SCI一区:章鱼优化算法(Octopus Optimization Algorithm, OOA)求解23个测试函数,出图丰富,提供完整MATLAB代码
开发语言·算法·matlab
superior tigre7 分钟前
739 每日温度
算法·leetcode·职场和发展
忡黑梨10 分钟前
eNSP_从直连到BGP全网互通
c语言·网络·数据结构·python·算法·网络安全
Run_Teenage26 分钟前
算法:离散化模板
算法
乐迪信息26 分钟前
乐迪信息:实时预警,秒级响应:船舶AI异常行为检测算法
大数据·人工智能·算法·安全·目标跟踪
6Hzlia28 分钟前
【Hot 100 刷题计划】 LeetCode 15. 三数之和 | C++ 排序+双指针
c++·算法·leetcode
fox_lht31 分钟前
第十章 通用集合
开发语言·后端·算法·rust
新新学长搞科研39 分钟前
【高质量能源会议推荐】第十一届能源与环境研究进展国际学术会议(ICAEER 2026)
人工智能·物联网·算法·机器学习·能源·环境·新能源
CN-Dust1 小时前
【C++】for循环例题专题
java·c++·算法