22. Generate Parentheses
¶
- Time: $O(2^{2n})$
- Space: $O(n)$
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
var generateParenthesis = function(n) {
const res = [];
const backtrack = (open, close, cur) => {
if (cur.length === 2 * n) { res.push(cur); return; }
if (open < n) backtrack(open + 1, close, cur + "(");
if (close < open) backtrack(open, close + 1, cur + ")");
};
backtrack(0, 0, "");
return res;
};