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);
    }
}

results matching ""

    No results matching ""