题意以及限制条件
-
题目:
-
限制条件:1 <= n <= 8
想到的所有可能解法
-
Ways_1——回溯
- 时间复杂度——O(n);空间复杂度——O(n)。
对应的代码
- Ways_1
class Solution {
public List<String> generateParenthesis(int n) {
List<String> list = new ArrayList<String>();
backtrack(list, new StringBuilder(), 0, 0, n);
return list;
}
private void backtrack(List<String> list, StringBuilder sb, int open, int close, int n) {
if (open == n && close == n) {
list.add(sb.toString());
return;
}
if (open < n) {
sb.append("(");
backtrack(list, sb, open + 1, close, n);
sb.setLength(sb.length() - 1);
}
if (close < open) {
sb.append(")");
backtrack(list, sb, open, close + 1, n);
sb.setLength(sb.length() - 1);
}
}
}