Given n nodes labeled from 0 to n - 1 and a list of undirected edges (each edge is a pair of nodes), write a function to find the number of connected components in an undirected graph.
Example 1:
Given n = 5 and edges = [[0, 1], [1, 2], [3, 4]], return 2.
Example 2:
Given n = 5 and edges = [[0, 1], [1, 2], [2, 3], [3, 4]], return 1.
Note:
You can assume that no duplicate edges will appear in edges. Since all edges are undirected, [0, 1] is the same as [1, 0] and thus will not appear together in edges.
解法1:Union-Find
C++
Java
解法2:DFS
DFS统计visited的node的个数的一种办法是,维护visited的set,每次执行一次dfs,然后到下一个节点如果没有visit过就++count。最后count就是总的visited的分隔的group的个数。
Java