题目:
算法思想:
回溯法:(深度优先遍历+剪枝)
代码:
class Solution {
public List generateParenthesis(int n) {
ArrayList res = new ArrayList<>();
dfs("", n, n, res);
return res;
}
public static void dfs(String temp, int left, int right, ArrayList res) {
if (left == 0 && right == 0) {
res.add(temp);
return;
}
if (right < left) {
return;
}
if (left != 0) {
dfs(temp + "(", left - 1, right, res);
}
if (right != 0) {
dfs(temp + ")", left, right - 1, res);
}
return;
}
}



