Skip to content

Commit 34e3e80

Browse files
committed
feat: update solutions to lc problems: No.0547,0684
1 parent 5dc82ad commit 34e3e80

File tree

7 files changed

+32
-89
lines changed

7 files changed

+32
-89
lines changed

solution/0500-0599/0547.Number of Provinces/README.md

+5-15
Original file line numberDiff line numberDiff line change
@@ -236,37 +236,27 @@ class Solution {
236236
public:
237237
vector<int> p;
238238

239-
int findCircleNum(vector<vector<int>> &isConnected) {
239+
int findCircleNum(vector<vector<int>>& isConnected) {
240240
int n = isConnected.size();
241241
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;
246243
for (int i = 0; i < n; ++i)
247244
{
248245
for (int j = 0; j < n; ++j)
249246
{
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);
254248
}
255249
}
256250
int cnt = 0;
257251
for (int i = 0; i < n; ++i)
258252
{
259-
if (i == find(i))
260-
++cnt;
253+
if (i == find(i)) ++cnt;
261254
}
262255
return cnt;
263256
}
264257

265258
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]);
270260
return p[x];
271261
}
272262
};

solution/0500-0599/0547.Number of Provinces/README_EN.md

+5-15
Original file line numberDiff line numberDiff line change
@@ -152,37 +152,27 @@ class Solution {
152152
public:
153153
vector<int> p;
154154

155-
int findCircleNum(vector<vector<int>> &isConnected) {
155+
int findCircleNum(vector<vector<int>>& isConnected) {
156156
int n = isConnected.size();
157157
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;
162159
for (int i = 0; i < n; ++i)
163160
{
164161
for (int j = 0; j < n; ++j)
165162
{
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);
170164
}
171165
}
172166
int cnt = 0;
173167
for (int i = 0; i < n; ++i)
174168
{
175-
if (i == find(i))
176-
++cnt;
169+
if (i == find(i)) ++cnt;
177170
}
178171
return cnt;
179172
}
180173

181174
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]);
186176
return p[x];
187177
}
188178
};

solution/0500-0599/0547.Number of Provinces/Solution.cpp

+5-15
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,27 @@ class Solution {
22
public:
33
vector<int> p;
44

5-
int findCircleNum(vector<vector<int>> &isConnected) {
5+
int findCircleNum(vector<vector<int>>& isConnected) {
66
int n = isConnected.size();
77
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;
129
for (int i = 0; i < n; ++i)
1310
{
1411
for (int j = 0; j < n; ++j)
1512
{
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);
2014
}
2115
}
2216
int cnt = 0;
2317
for (int i = 0; i < n; ++i)
2418
{
25-
if (i == find(i))
26-
++cnt;
19+
if (i == find(i)) ++cnt;
2720
}
2821
return cnt;
2922
}
3023

3124
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]);
3626
return p[x];
3727
}
3828
};

solution/0600-0699/0684.Redundant Connection/README.md

+6-15
Original file line numberDiff line numberDiff line change
@@ -118,13 +118,13 @@ d[find(a)] = distance
118118
```python
119119
class Solution:
120120
def findRedundantConnection(self, edges: List[List[int]]) -> List[int]:
121-
p = [i for i in range(1010)]
121+
p = list(range(1010))
122122

123123
def find(x):
124124
if p[x] != x:
125125
p[x] = find(p[x])
126126
return p[x]
127-
127+
128128
for a, b in edges:
129129
if find(a) == find(b):
130130
return [a, b]
@@ -170,28 +170,19 @@ class Solution {
170170
public:
171171
vector<int> p;
172172

173-
vector<int> findRedundantConnection(vector<vector<int>> &edges) {
173+
vector<int> findRedundantConnection(vector<vector<int>>& edges) {
174174
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;
179176
for (auto e : edges)
180177
{
181-
if (find(e[0]) == find(e[1]))
182-
{
183-
return e;
184-
}
178+
if (find(e[0]) == find(e[1])) return e;
185179
p[find(e[0])] = find(e[1]);
186180
}
187181
return {};
188182
}
189183

190184
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]);
195186
return p[x];
196187
}
197188
};

solution/0600-0699/0684.Redundant Connection/README_EN.md

+6-15
Original file line numberDiff line numberDiff line change
@@ -87,13 +87,13 @@ We have overhauled the problem description + test cases and specified clearly th
8787
```python
8888
class Solution:
8989
def findRedundantConnection(self, edges: List[List[int]]) -> List[int]:
90-
p = [i for i in range(1010)]
90+
p = list(range(1010))
9191

9292
def find(x):
9393
if p[x] != x:
9494
p[x] = find(p[x])
9595
return p[x]
96-
96+
9797
for a, b in edges:
9898
if find(a) == find(b):
9999
return [a, b]
@@ -137,28 +137,19 @@ class Solution {
137137
public:
138138
vector<int> p;
139139

140-
vector<int> findRedundantConnection(vector<vector<int>> &edges) {
140+
vector<int> findRedundantConnection(vector<vector<int>>& edges) {
141141
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;
146143
for (auto e : edges)
147144
{
148-
if (find(e[0]) == find(e[1]))
149-
{
150-
return e;
151-
}
145+
if (find(e[0]) == find(e[1])) return e;
152146
p[find(e[0])] = find(e[1]);
153147
}
154148
return {};
155149
}
156150

157151
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]);
162153
return p[x];
163154
}
164155
};

solution/0600-0699/0684.Redundant Connection/Solution.cpp

+4-13
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,19 @@ class Solution {
22
public:
33
vector<int> p;
44

5-
vector<int> findRedundantConnection(vector<vector<int>> &edges) {
5+
vector<int> findRedundantConnection(vector<vector<int>>& edges) {
66
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;
118
for (auto e : edges)
129
{
13-
if (find(e[0]) == find(e[1]))
14-
{
15-
return e;
16-
}
10+
if (find(e[0]) == find(e[1])) return e;
1711
p[find(e[0])] = find(e[1]);
1812
}
1913
return {};
2014
}
2115

2216
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]);
2718
return p[x];
2819
}
2920
};

solution/0600-0699/0684.Redundant Connection/Solution.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
class Solution:
22
def findRedundantConnection(self, edges: List[List[int]]) -> List[int]:
3-
p = [i for i in range(1010)]
3+
p = list(range(1010))
44

55
def find(x):
66
if p[x] != x:

0 commit comments

Comments
 (0)