File tree Expand file tree Collapse file tree 1 file changed +6
-6
lines changed Expand file tree Collapse file tree 1 file changed +6
-6
lines changed Original file line number Diff line number Diff line change @@ -10,22 +10,22 @@ class Solution {
10
10
adj[e[0 ] - 1 ].emplace_back (e[1 ] - 1 );
11
11
adj[e[1 ] - 1 ].emplace_back (e[0 ] - 1 );
12
12
}
13
- vector<int > lookup (n);
13
+ vector<int > lookup (n, - 1 );
14
14
const auto & iter_dfs = [&](int u) {
15
15
vector<int > group;
16
16
vector<int > stk = {u};
17
- ++ lookup[u];
17
+ lookup[u] = 0 ;
18
18
while (!empty (stk)) {
19
19
const auto u = stk.back (); stk.pop_back ();
20
20
group.emplace_back (u);
21
21
for (const auto & v : adj[u]) {
22
- if (lookup[v]) {
23
- if (lookup[v] % 2 == lookup[u] % 2 ) { // odd-length cycle
22
+ if (lookup[v] != - 1 ) {
23
+ if (lookup[v] == lookup[u]) { // odd-length cycle, not bipartite
24
24
return vector<int >();
25
25
}
26
26
continue ;
27
27
}
28
- lookup[v] = lookup[u] + 1 ;
28
+ lookup[v] = lookup[u] ^ 1 ;
29
29
stk.emplace_back (v);
30
30
}
31
31
}
@@ -54,7 +54,7 @@ class Solution {
54
54
55
55
int result = 0 ;
56
56
for (int u = 0 ; u < n; ++u) {
57
- if (lookup[u]) {
57
+ if (lookup[u] != - 1 ) {
58
58
continue ;
59
59
}
60
60
const auto & group = iter_dfs (u);
You can’t perform that action at this time.
0 commit comments