给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。
示例
输入: n = 3 |
解法
解法-动态规划
核心思想:分治算法/动态规划
在求N个括号的排列组合时,把第N种情况(也就是N个括号排列组合)视为单独拿一个括号E出来,剩下的N-1个括号分为两部分,P个括号和Q个括号,P+Q=N-1,然后这两部分分别处于括号E内和括号E的右边,各自进行括号的排列组合。
class Solution: |
解法-回溯算法
核心思想:类似深度优先,第一个结果,会是
((()))
,最后一个结果是()()()
。
# 回溯法 |