【leetcode100】括号生成

1、题目描述

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的括号组合。

示例 1:

复制代码
输入:n = 3
输出:["((()))","(()())","(())()","()(())","()()()"]

2、初始思路

2.1 思路

全排列+筛选

2.2 犯错点

全排列,时间复杂度高,且易读性较差

3 优化算法

3.1 思路

在构造的过程中直接确保括号的正确匹配:

  • 当左括号数量<n时,可以继续添加左括号;
  • 当右括号数量<左括号数量时,才可以添加右括号。

3.2 代码

复制代码
class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        res = []
        path = []
        def backtracking(path, left, right):
            if len(path) == 2*n:
                res.append(''.join(path.copy()))
                return
            if left<n:
                path.append('(')
                backtracking(path, left+1, right)
                path.pop()
            if right<left:
                path.append(')')
                backtracking(path, left, right+1)
                path.pop()
        backtracking(path, 0, 0)
        return res
相关推荐
kingmax542120084 分钟前
图论核心算法(C++):包括存储结构、核心思路、速记口诀以及学习方法, 一站式上机考试学习【附PKU百练,相关练习题单】
c++·算法·图论·信奥赛·上机考试·百练·pku
罗湖老棍子7 分钟前
【例9.15】潜水员(信息学奥赛一本通- P1271)
c++·算法·动态规划·二维费用背包
_OP_CHEN11 分钟前
算法基础篇:(二十一)数据结构之单调栈:从原理到实战,玩转高效解题
数据结构·算法·蓝桥杯·单调栈·算法竞赛·acm/icpc
MOMO陌染14 分钟前
Python 饼图入门:3 行代码展示数据占比
后端·python
vvoennvv1 小时前
【Python TensorFlow】 TCN-GRU时间序列卷积门控循环神经网络时序预测算法(附代码)
python·rnn·神经网络·机器学习·gru·tensorflow·tcn
自学互联网1 小时前
使用Python构建钢铁行业生产监控系统:从理论到实践
开发语言·python
无心水1 小时前
【Python实战进阶】7、Python条件与循环实战详解:从基础语法到高级技巧
android·java·python·python列表推导式·python条件语句·python循环语句·python实战案例
q***51892 小时前
【语义分割】12个主流算法架构介绍、数据集推荐、总结、挑战和未来发展
算法·架构
xwill*2 小时前
RDT-1B: A DIFFUSION FOUNDATION MODEL FOR BIMANUAL MANIPULATION
人工智能·pytorch·python·深度学习
陈奕昆2 小时前
n8n实战营Day2课时2:Loop+Merge节点进阶·Excel批量校验实操
人工智能·python·excel·n8n