22.Generate Parentheses
class Solution {
public List<String> generateParenthesis(int n) {
List<String> ans = new ArrayList<>();
backtrack(ans, "", 0, 0, n);
return ans;
}
public void backtrack(List<String> ans, String cur, int leftNum, int rightNum, int maxNum){
if(cur.length() == maxNum * 2){
ans.add(cur);
return;
}
if(leftNum < maxNum)
backtrack(ans, cur + "(", leftNum + 1, rightNum, maxNum);
if(rightNum < leftNum)
backtrack(ans, cur + ")", leftNum, rightNum + 1, maxNum);
}
}