Skip to content

Commit dfbc65d

Browse files
committed
Time: 0 ms (100.00%) | Memory: 43 MB (71.01%) - LeetSync
1 parent b44d79f commit dfbc65d

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import java.util.ArrayList;
2+
import java.util.List;
3+
4+
class Solution {
5+
public List<String> generateParenthesis(int n) {
6+
List<String> result = new ArrayList<>();
7+
StringBuilder intermediate = new StringBuilder(2 * n);
8+
9+
helper(intermediate, 0, 0, n, result);
10+
return result;
11+
}
12+
13+
private void helper(StringBuilder intermediate, int left, int right, int n, List<String> result) {
14+
if (intermediate.length() == 2 * n) {
15+
result.add(intermediate.toString());
16+
return;
17+
}
18+
if (left < n) {
19+
intermediate.append('(');
20+
helper(intermediate, left + 1, right, n, result);
21+
intermediate.setLength(intermediate.length() - 1);
22+
}
23+
if (right < left) {
24+
intermediate.append(')');
25+
helper(intermediate, left, right + 1, n, result);
26+
intermediate.setLength(intermediate.length() - 1);
27+
}
28+
}
29+
}

0 commit comments

Comments
 (0)