MCPcopy Create free account
hub / github.com/neetcode-gh/leetcode / dfs

Function dfs

javascript/0022-generate-parentheses.js:11–40  ·  view source on GitHub ↗
(n, combos = [], open = 0, close = 0, path = [])

Source from the content-addressed store, hash-verified

9var generateParenthesis = (n) => dfs(n);
10
11const dfs = (n, combos = [], open = 0, close = 0, path = []) => {
12 const isBaseCase = path.length === n * 2;
13 if (isBaseCase) {
14 combos.push(path.join('')); /* Space O(N + N) */
15
16 return combos;
17 }
18
19 const isOpen = open < n;
20 if (isOpen)
21 backTrackOpen(
22 n,
23 combos,
24 open,
25 close,
26 path,
27 ); /* Time O(2^N) | Space O(2^N) */
28
29 const isClose = close < open;
30 if (isClose)
31 backTrackClose(
32 n,
33 combos,
34 open,
35 close,
36 path,
37 ); /* Time O(2^N) | Space O(2^N) */
38
39 return combos;
40};
41
42const backTrackOpen = (n, combos, open, close, path) => {
43 path.push('('); /* Space O(N) */

Callers 3

generateParenthesisFunction · 0.70
backTrackOpenFunction · 0.70
backTrackCloseFunction · 0.70

Calls 3

backTrackOpenFunction · 0.85
backTrackCloseFunction · 0.85
pushMethod · 0.45

Tested by

no test coverage detected