【LeetCode】22. 括号生成

1 问题

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

示例 1:

输入:n = 3

输出:["((()))","(()())","(())()","()(())","()()()"]

示例 2:

输入:n = 1

输出:["()"]

2 答案

这题直接不会

官方解利用回溯算法

深度优先遍历

python 复制代码
class Solution:
    def generateParenthesis(self, n: int) -> List[str]:

        res = []
        cur_str = ''

        def dfs(cur_str, left, right):
            if left ==0 and right == 0:
                res.append(cur_str)
                return
            if left > right:
                return
            if left > 0:
                dfs(cur_str+'(', left-1, right)
            if right > 0:
                dfs(cur_str+')', left, right-1)

        dfs(cur_str, n, n)
        return res
相关推荐
我是你们的明哥5 分钟前
从 N 个商品中找出总价最小的 K 个方案
后端·算法
民乐团扒谱机14 分钟前
【微实验】谱聚类之大规模数据应用——Nyström 方法
人工智能·算法·机器学习·matlab·数据挖掘·聚类·谱聚类
CoderYanger15 分钟前
A.每日一题——3606. 优惠券校验器
java·开发语言·数据结构·算法·leetcode
CoderYanger25 分钟前
D.二分查找-基础——744. 寻找比目标字母大的最小字母
java·开发语言·数据结构·算法·leetcode·职场和发展
元亓亓亓28 分钟前
LeetCode热题100--347. 前 K 个高频元素--中等
数据结构·算法·leetcode
Hello eveybody32 分钟前
冒泡、选择、插入排序简介(C++)
数据结构·算法·排序算法
CoderYanger34 分钟前
贪心算法:2.将数组和减半的最少操作次数
java·算法·leetcode·贪心算法·1024程序员节
Chen--Xing36 分钟前
LeetCode 49.字母异位词分组
c++·python·算法·leetcode·rust
长安er40 分钟前
LeetCode 235 & 236 最近公共祖先(LCA)解题总结
算法·leetcode·二叉树·递归·lca
im_AMBER43 分钟前
Leetcode 77 数组中的最大数对和 | 统计坏数对的数目
笔记·学习·算法·leetcode