22. Generate Parentheses

JJ·2020년 12월 23일
0

Algorithms

목록 보기
24/114
class Solution {
    public List<String> generateParenthesis(int n) {
        List<String> parent = new ArrayList<String>();
        helper(n, 0, 0, "", parent);
        return parent;
    }
    
    private void helper(int n, int open, int close, String result, List<String> parent) {
        if (result.length() == n * 2) {
            parent.add(result);
            return;
        }
        
        if (open < n) {
            helper(n, open + 1, close, result + "(", parent);
        }
        if (close < open) {
            helper(n, open, close + 1, result + ")", parent);
        }
    }
}

Gotta work on backtracking!

Runtime: 1 ms, faster than 82.37% of Java online submissions for Generate Parentheses.
Memory Usage: 38.8 MB, less than 98.03% of Java online submissions for Generate Parentheses.

0개의 댓글