给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。
例如,给出 n = 3,生成结果为:
[
"((()))",
"(()())",
"(())()",
"()(())",
"()()()"
]
解法一:
数学归纳法 从n =1 -> n=2-->n=x ,从小到大,发现规律。解法二:
DFS + 递归 字符号长度 2*n
暴力解法,结合栈O(2 **2n)
解法三:
解法二上改进 + 剪枝
O(2 **n)
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。
例如,给出 n = 3,生成结果为:
[
"((()))",
"(()())",
"(())()",
"()(())",
"()()()"
]
解法一:
数学归纳法 从n =1 -> n=2-->n=x ,从小到大,发现规律。
解法二:
DFS + 递归 字符号长度 2*n
暴力解法,结合栈
O(2 **2n)
解法三:
解法二上改进 + 剪枝
O(2 **n)