Skip to content

Commit 3214067

Browse files
committed
feat: number-of-connected-components-in-an-undirected-graph problem
1 parent d649798 commit 3214067

File tree

1 file changed

+43
-0
lines changed
  • number-of-connected-components-in-an-undirected-graph

1 file changed

+43
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
class Solution:
2+
# def countComponents(self, n: int, edges: List[List[int]]) -> int:
3+
# graph = [[] for _ in range(n)]
4+
# for node, adj in edges:
5+
# graph[node].append(adj)
6+
# graph[adj].append(node)
7+
8+
# visited = set()
9+
10+
# def dfs(node):
11+
# visited.add(node)
12+
# for adj in graph[node]:
13+
# if adj not in visited:
14+
# dfs(adj)
15+
16+
# cnt = 0
17+
# for node in range(n):
18+
# if node not in visited:
19+
# cnt += 1
20+
# dfs(node)
21+
# return cnt
22+
23+
24+
def countComponents(self, n: int, edges: List[List[int]]) -> int:
25+
graph = [[] for _ in range(n)]
26+
for node, adj in edges:
27+
graph[node].append(adj)
28+
graph[adj].append(node)
29+
30+
cnt = 0
31+
visited = set()
32+
for node in range(n):
33+
if node in visited:
34+
continue
35+
cnt += 1
36+
queue = deque([node])
37+
while queue:
38+
node = queue.pop()
39+
visited.add(node)
40+
for adj in graph[node]:
41+
if adj not in visited:
42+
queue.append(adj)
43+
return cnt

0 commit comments

Comments
 (0)