File tree 7 files changed +32
-89
lines changed
0500-0599/0547.Number of Provinces
0600-0699/0684.Redundant Connection
7 files changed +32
-89
lines changed Original file line number Diff line number Diff line change @@ -236,37 +236,27 @@ class Solution {
236
236
public:
237
237
vector<int > p;
238
238
239
- int findCircleNum(vector<vector<int>> & isConnected) {
239
+ int findCircleNum(vector<vector<int>>& isConnected) {
240
240
int n = isConnected.size();
241
241
p.resize(n);
242
- for (int i = 0; i < n; ++i)
243
- {
244
- p[i] = i;
245
- }
242
+ for (int i = 0; i < n; ++i) p[i] = i;
246
243
for (int i = 0; i < n; ++i)
247
244
{
248
245
for (int j = 0; j < n; ++j)
249
246
{
250
- if (isConnected[i][j])
251
- {
252
- p[find(i)] = find(j);
253
- }
247
+ if (i != j && isConnected[i][j] == 1) p[find(i)] = find(j);
254
248
}
255
249
}
256
250
int cnt = 0 ;
257
251
for (int i = 0 ; i < n; ++i)
258
252
{
259
- if (i == find(i))
260
- ++cnt;
253
+ if (i == find(i)) ++cnt;
261
254
}
262
255
return cnt;
263
256
}
264
257
265
258
int find(int x) {
266
- if (p[x] != x)
267
- {
268
- p[x] = find(p[x]);
269
- }
259
+ if (p[x] != x) p[x] = find(p[x]);
270
260
return p[x];
271
261
}
272
262
};
Original file line number Diff line number Diff line change @@ -152,37 +152,27 @@ class Solution {
152
152
public:
153
153
vector<int > p;
154
154
155
- int findCircleNum(vector<vector<int>> & isConnected) {
155
+ int findCircleNum(vector<vector<int>>& isConnected) {
156
156
int n = isConnected.size();
157
157
p.resize(n);
158
- for (int i = 0; i < n; ++i)
159
- {
160
- p[i] = i;
161
- }
158
+ for (int i = 0; i < n; ++i) p[i] = i;
162
159
for (int i = 0; i < n; ++i)
163
160
{
164
161
for (int j = 0; j < n; ++j)
165
162
{
166
- if (isConnected[i][j])
167
- {
168
- p[find(i)] = find(j);
169
- }
163
+ if (i != j && isConnected[i][j] == 1) p[find(i)] = find(j);
170
164
}
171
165
}
172
166
int cnt = 0 ;
173
167
for (int i = 0 ; i < n; ++i)
174
168
{
175
- if (i == find(i))
176
- ++cnt;
169
+ if (i == find(i)) ++cnt;
177
170
}
178
171
return cnt;
179
172
}
180
173
181
174
int find(int x) {
182
- if (p[x] != x)
183
- {
184
- p[x] = find(p[x]);
185
- }
175
+ if (p[x] != x) p[x] = find(p[x]);
186
176
return p[x];
187
177
}
188
178
};
Original file line number Diff line number Diff line change @@ -2,37 +2,27 @@ class Solution {
2
2
public:
3
3
vector<int > p;
4
4
5
- int findCircleNum (vector<vector<int >> & isConnected) {
5
+ int findCircleNum (vector<vector<int >>& isConnected) {
6
6
int n = isConnected.size ();
7
7
p.resize (n);
8
- for (int i = 0 ; i < n; ++i)
9
- {
10
- p[i] = i;
11
- }
8
+ for (int i = 0 ; i < n; ++i) p[i] = i;
12
9
for (int i = 0 ; i < n; ++i)
13
10
{
14
11
for (int j = 0 ; j < n; ++j)
15
12
{
16
- if (isConnected[i][j])
17
- {
18
- p[find (i)] = find (j);
19
- }
13
+ if (i != j && isConnected[i][j] == 1 ) p[find (i)] = find (j);
20
14
}
21
15
}
22
16
int cnt = 0 ;
23
17
for (int i = 0 ; i < n; ++i)
24
18
{
25
- if (i == find (i))
26
- ++cnt;
19
+ if (i == find (i)) ++cnt;
27
20
}
28
21
return cnt;
29
22
}
30
23
31
24
int find (int x) {
32
- if (p[x] != x)
33
- {
34
- p[x] = find (p[x]);
35
- }
25
+ if (p[x] != x) p[x] = find (p[x]);
36
26
return p[x];
37
27
}
38
28
};
Original file line number Diff line number Diff line change @@ -118,13 +118,13 @@ d[find(a)] = distance
118
118
``` python
119
119
class Solution :
120
120
def findRedundantConnection (self , edges : List[List[int ]]) -> List[int ]:
121
- p = [i for i in range (1010 )]
121
+ p = list ( range (1010 ))
122
122
123
123
def find (x ):
124
124
if p[x] != x:
125
125
p[x] = find(p[x])
126
126
return p[x]
127
-
127
+
128
128
for a, b in edges:
129
129
if find(a) == find(b):
130
130
return [a, b]
@@ -170,28 +170,19 @@ class Solution {
170
170
public:
171
171
vector<int > p;
172
172
173
- vector<int> findRedundantConnection(vector<vector<int>> & edges) {
173
+ vector<int> findRedundantConnection(vector<vector<int>>& edges) {
174
174
p.resize(1010);
175
- for (int i = 0; i < p.size(); ++i)
176
- {
177
- p[i] = i;
178
- }
175
+ for (int i = 0; i < p.size(); ++i) p[i] = i;
179
176
for (auto e : edges)
180
177
{
181
- if (find(e[0]) == find(e[1]))
182
- {
183
- return e;
184
- }
178
+ if (find(e[0]) == find(e[1])) return e;
185
179
p[find(e[0])] = find(e[1]);
186
180
}
187
181
return {};
188
182
}
189
183
190
184
int find (int x) {
191
- if (p[x] != x)
192
- {
193
- p[x] = find(p[x]);
194
- }
185
+ if (p[ x] != x) p[ x] = find(p[ x] );
195
186
return p[ x] ;
196
187
}
197
188
};
Original file line number Diff line number Diff line change @@ -87,13 +87,13 @@ We have overhauled the problem description + test cases and specified clearly th
87
87
``` python
88
88
class Solution :
89
89
def findRedundantConnection (self , edges : List[List[int ]]) -> List[int ]:
90
- p = [i for i in range (1010 )]
90
+ p = list ( range (1010 ))
91
91
92
92
def find (x ):
93
93
if p[x] != x:
94
94
p[x] = find(p[x])
95
95
return p[x]
96
-
96
+
97
97
for a, b in edges:
98
98
if find(a) == find(b):
99
99
return [a, b]
@@ -137,28 +137,19 @@ class Solution {
137
137
public:
138
138
vector<int > p;
139
139
140
- vector<int> findRedundantConnection(vector<vector<int>> & edges) {
140
+ vector<int> findRedundantConnection(vector<vector<int>>& edges) {
141
141
p.resize(1010);
142
- for (int i = 0; i < p.size(); ++i)
143
- {
144
- p[i] = i;
145
- }
142
+ for (int i = 0; i < p.size(); ++i) p[i] = i;
146
143
for (auto e : edges)
147
144
{
148
- if (find(e[0]) == find(e[1]))
149
- {
150
- return e;
151
- }
145
+ if (find(e[0]) == find(e[1])) return e;
152
146
p[find(e[0])] = find(e[1]);
153
147
}
154
148
return {};
155
149
}
156
150
157
151
int find (int x) {
158
- if (p[x] != x)
159
- {
160
- p[x] = find(p[x]);
161
- }
152
+ if (p[ x] != x) p[ x] = find(p[ x] );
162
153
return p[ x] ;
163
154
}
164
155
};
Original file line number Diff line number Diff line change @@ -2,28 +2,19 @@ class Solution {
2
2
public:
3
3
vector<int > p;
4
4
5
- vector<int > findRedundantConnection (vector<vector<int >> & edges) {
5
+ vector<int > findRedundantConnection (vector<vector<int >>& edges) {
6
6
p.resize (1010 );
7
- for (int i = 0 ; i < p.size (); ++i)
8
- {
9
- p[i] = i;
10
- }
7
+ for (int i = 0 ; i < p.size (); ++i) p[i] = i;
11
8
for (auto e : edges)
12
9
{
13
- if (find (e[0 ]) == find (e[1 ]))
14
- {
15
- return e;
16
- }
10
+ if (find (e[0 ]) == find (e[1 ])) return e;
17
11
p[find (e[0 ])] = find (e[1 ]);
18
12
}
19
13
return {};
20
14
}
21
15
22
16
int find (int x) {
23
- if (p[x] != x)
24
- {
25
- p[x] = find (p[x]);
26
- }
17
+ if (p[x] != x) p[x] = find (p[x]);
27
18
return p[x];
28
19
}
29
20
};
Original file line number Diff line number Diff line change 1
1
class Solution :
2
2
def findRedundantConnection (self , edges : List [List [int ]]) -> List [int ]:
3
- p = [ i for i in range (1010 )]
3
+ p = list ( range (1010 ))
4
4
5
5
def find (x ):
6
6
if p [x ] != x :
You can’t perform that action at this time.
0 commit comments