File tree 2 files changed +28
-1
lines changed
algorithms/generateParentheses
2 files changed +28
-1
lines changed Original file line number Diff line number Diff line change @@ -390,7 +390,7 @@ LeetCode
390
390
| 25| [ Reverse Nodes in k-Group] ( https://leetcode.com/problems/reverse-nodes-in-k-group/ ) | | Hard|
391
391
| 24| [ Swap Nodes in Pairs] ( https://leetcode.com/problems/swap-nodes-in-pairs/ ) | | Medium|
392
392
| 23| [ Merge k Sorted Lists] ( https://leetcode.com/problems/merge-k-sorted-lists/ ) | | Hard|
393
- | 22| [ Generate Parentheses] ( https://leetcode.com/problems/generate-parentheses/ ) | | Medium|
393
+ | 22| [ Generate Parentheses] ( https://leetcode.com/problems/generate-parentheses/ ) | [ js ] ( ./algorithms/generateParentheses/generateParentheses.js ) | Medium|
394
394
| 21| [ Merge Two Sorted Lists] ( https://leetcode.com/problems/merge-two-sorted-lists/ ) | | Easy|
395
395
| 20| [ Valid Parentheses] ( https://leetcode.com/problems/valid-parentheses/ ) | | Easy|
396
396
| 19| [ Remove Nth Node From End of List] ( https://leetcode.com/problems/remove-nth-node-from-end-of-list/ ) | | Easy|
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number } n
3
+ * @return {string[] }
4
+ */
5
+ var generateParenthesis = function ( n ) {
6
+ const arr = [ ] ;
7
+ function generate ( left , right , str ) {
8
+ // 递归终结条件:n 都用完了
9
+ if ( left === n && right === n ) {
10
+ arr . push ( str ) ;
11
+ return ;
12
+ }
13
+
14
+ // 如果左括号没用完(第一肯定先使用左括号),就继续递归
15
+ if ( left < n ) {
16
+ generate ( left + 1 , right , str + '(' ) ;
17
+ }
18
+
19
+ // 如果右括号没用完(右括号肯定比左括号少,且有括号没用完),就继续递归
20
+ if ( right < left ) {
21
+ generate ( left , right + 1 , str + ')' )
22
+ }
23
+ }
24
+
25
+ generate ( 0 , 0 , '' ) ;
26
+ return arr ;
27
+ } ;
You can’t perform that action at this time.
0 commit comments