当前位置: 首页 > news >正文

LeetCode 括号生成题解

LeetCode 括号生成题解

题目描述

数字n代表生成括号的对数,请你写一个函数,使其能够生成所有可能的且有效的括号组合。

示例

输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]

解题思路

方法:回溯

思路

  • 使用回溯算法来解决这个问题。
  • 维护两个计数器:左括号的数量和右括号的数量。
  • 从第一个位置开始,尝试所有可能的选择:
    • 如果左括号数量小于 n,添加左括号。
    • 如果右括号数量小于左括号数量,添加右括号。
    • 当左括号数量等于 n 且右括号数量等于 n 时,将路径加入结果列表。

复杂度分析

  • 时间复杂度:O(4^n / sqrt(n)),这是卡特兰数的复杂度。
  • 空间复杂度:O(n),递归调用栈的深度为 2n。

代码实现

方法:回溯

# 括号生成(回溯) def generate_parenthesis(n): result = [] def backtrack(path, left, right): if len(path) == 2 * n: result.append(path) return if left < n: backtrack(path + '(', left + 1, right) if right < left: backtrack(path + ')', left, right + 1) backtrack('', 0, 0) return result # 测试 def test_generate_parenthesis(): n = 3 print(generate_parenthesis(n)) # 输出:['((()))', '(()())', '(())()', '()(())', '()()()'] if __name__ == "__main__": test_generate_parenthesis()

测试用例

测试用例 1:基本情况

输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]

测试用例 2:n=1

输入:n = 1
输出:["()"]

总结

括号生成是一个经典的回溯算法问题,它可以通过回溯算法来高效地解决。

回溯算法的核心思想是:维护左右括号的数量,在选择时确保右括号的数量不超过左括号的数量。

掌握回溯算法的使用方法,对于解决类似的问题非常重要。

http://www.jsqmd.com/news/785696/

相关文章:

  • 数据网格架构:云原生时代的数据管理新范式
  • 本地AI智能体平台Walrus:开箱即用的私有化AI助手部署指南
  • 仿真客户旅程式网络钓鱼攻击机理与防御技术研究
  • CANN/cann-recipes-infer MTP模型适配指南
  • CANN基础设施邮件列表指南
  • 使用Taotoken后API调用稳定性与延迟的直观体感观察
  • 卷积改进与轻量化:时序卷积 TCN 化——将卷积扩展为因果时序卷积,用于视频流检测的时序特征增强
  • 生成式AI治理:从版权归属到内容安全的企业级实践指南
  • 实验报告:实验4-树、二叉树与查找
  • 从儿童AI认知偏差看人工智能素养教育的核心转向
  • 各地特色糖水,正宗做法大公开
  • 周作业66
  • 洛谷P6054思路分享(网络流,期望)
  • DeepSeek V4 上线,Tabbit 更会干活了(限时白嫖 pro 会员)
  • Kubernetes自定义资源定义(CRD)深度解析与实践
  • CANN/mat-chem-sim-pred DPD算子设计文档
  • STM32 内核
  • 呼和浩特搬家怎么选?2025年本地搬家市场格局与五大机构深度测评 - 品牌策略师
  • CANN/AMCT保存量化重训练模型
  • CANN/cann-recipes-infer Kimi-K2-Thinking配置指南
  • JAVA TREE
  • cann/runtime 多设备编程
  • 卷积改进与轻量化:2026 生产级轻量:将 MobileOne 重新参数化块引入 YOLO 主干,iPhone 上实时运行
  • Kubernetes多集群管理与联邦:构建跨地域高可用架构
  • 异常类
  • 2026年4月技术好的升降窗品牌推荐,断桥窗沙一体内开窗/铝合金阳光房/系统推拉门/阳光房,升降窗厂家哪个好 - 品牌推荐师
  • 基于OpenAI API与Slack平台构建智能对话机器人的实践指南
  • Avast 阻止引用程序访问网络
  • 生产级AI系统不确定性管理:从量化到决策的工程实践
  • CANN竞赛仓Add算子测试报告