22. 括号生成
难度中等1762
数字 n
代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
示例 1:
1 | 输入:n = 3 |
示例 2:
1 | 输入:n = 1 |
提示:
1 <= n <= 8
回溯方法
- 如果左括号的数量还没有满足,先生成左括号
- 如果右括号的数量小于左括号的数量就生成右括号,否则不生成右括号
1 | class Solution { |
暴力回溯
1 | class Solution{ |
优化的回溯
//如果左括号的数量小于n,可以继续添加左括号
//如果右括号的数量小于左括号,可以继续添加右括号
这样就可以不用验证生成序列的正确性了
1 | class Solution{ |
按括号序列的长度递归
1 |
|
参考文献
1 |
|