File tree Expand file tree Collapse file tree 2 files changed +44
-0
lines changed
number-of-connected-components-in-an-undirected-graph Expand file tree Collapse file tree 2 files changed +44
-0
lines changed Original file line number Diff line number Diff line change 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 number Diff line number Diff line change 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))
You can’t perform that action at this time.
0 commit comments