15% off all plans & roadmaps Use code
See plansLeetCode 323 · Solution & editorial
You are given an integer n representing the number of nodes in an undirected graph, labeled from 0 to n - 1. You are also given a 2D array edges, where each edges[i] = [ai, bi] indicates that there is an undirected edge between nodes ai and bi.
Number of Connected Components in an Undirected Graph is a Graph Traversal Patterns (DFS & BFS) problem, in the Union-Find (Disjoint Set Union - DSU) subpattern. The pattern covers DFS/BFS traversal, topological sort, shortest paths, Union-Find, and MST
Master Union-Find data structure with path compression and union by rank for connectivity problems.
The reference solution runs in O(E + N) time and O(N) space.
Number of Connected Components in an Undirected Graph has been reported in interviews at Amazon, Facebook, LinkedIn, Microsoft, Apple.
The full editorial is part of Pro
It explains the core insight, the complexity analysis and the common mistakes, with a worked solution.
Number of Connected Components in an Undirected Graph is a Graph Traversal Patterns (DFS & BFS) problem, in the Union-Find (Disjoint Set Union - DSU) subpattern. Once the approach above makes sense, write it yourself and then work through the neighbouring problems that reuse it.