Skip to content

Commit 84335f1

Browse files
committed
[Leo] 10th Week solutions
1 parent 42c41cd commit 84335f1

File tree

2 files changed

+44
-0
lines changed
  • graph-valid-tree
  • number-of-connected-components-in-an-undirected-graph

2 files changed

+44
-0
lines changed

graph-valid-tree/Leo.py

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class Solution:
2+
def validTree(self, n: int, edges: List[List[int]]) -> bool:
3+
# filter false cases by definition of tree
4+
if n - 1 != len(edges):
5+
return False
6+
7+
nodes = set()
8+
9+
for i, edge in enumerate(edges):
10+
nodes.add(edge[0])
11+
nodes.add(edge[1])
12+
13+
if i + 1 > len(nodes) - 1:
14+
return False
15+
16+
return True
17+
18+
## TC: O(num(edges)), SC: P(num(nodes))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
class Solution:
2+
def countComponents(self, n: int, edges: List[List[int]]) -> int:
3+
4+
graph = collections.defaultdict(list)
5+
6+
for x, y in edges:
7+
graph[x].append(y)
8+
graph[y].append(x)
9+
10+
def dfs(node, visited):
11+
visited.add(node)
12+
for neighbor in graph[node]:
13+
if neighbor not in visited:
14+
dfs(neighbor, visited)
15+
16+
count = 0
17+
visited = set()
18+
19+
for node in range(n):
20+
if node not in visited:
21+
dfs(node, visited)
22+
count += 1
23+
24+
return count
25+
26+
## TC && SC: O(num(edge) + num(node))

0 commit comments

Comments
 (0)