File tree 1 file changed +10
-9
lines changed
scripts/algorithms/V/Valid Arrangement of Pairs
1 file changed +10
-9
lines changed Original file line number Diff line number Diff line change
1
+ // Runtime: 2105 ms (Top 22.94%) | Memory: 477.9 MB (Top 17.92%)
1
2
class Solution {
2
3
public:
3
4
vector<vector<int >> validArrangement (vector<vector<int >>& pairs) {
@@ -6,25 +7,25 @@ class Solution {
6
7
unordered_map<int , stack<int >> adj;
7
8
unordered_map<int , int > in;
8
9
unordered_map<int , int > out;
9
- // reserve spaces for unordered_map may help in runtime.
10
- adj.reserve (m);
11
- in.reserve (m);
12
- out.reserve (m);
10
+ // reserve spaces for unordered_map may help in runtime.
11
+ adj.reserve (m);
12
+ in.reserve (m);
13
+ out.reserve (m);
13
14
for (int i = 0 ; i < m; i++) {
14
15
int u = pairs[i][0 ], v = pairs[i][1 ];
15
16
in[v]++;
16
17
out[u]++;
17
18
adj[u].push (v);
18
19
}
19
- // find the starting node
20
+ // find the starting node
20
21
int start = -1 ;
21
22
for (auto & p : adj) {
22
23
int i = p.first ;
23
24
if (out[i] - in[i] == 1 ) start = i;
24
25
}
25
26
if (start == -1 ) {
26
- // Eulerian Circuit -> start at any node
27
- start = adj.begin ()->first ;
27
+ // Eulerian Circuit -> start at any node
28
+ start = adj.begin ()->first ;
28
29
}
29
30
vector<vector<int >> ans;
30
31
euler (adj, ans, start);
@@ -38,8 +39,8 @@ class Solution {
38
39
int nei = stk.top ();
39
40
stk.pop ();
40
41
euler (adj, ans, nei);
41
- // postorder
42
+ // postorder
42
43
ans.push_back ({curr, nei});
43
44
}
44
45
}
45
- };
46
+ };
You can’t perform that action at this time.
0 commit comments