323. Number of Connected Components in an Undirected Graph

https://leetcode.com/problems/number-of-connected-components-in-an-undirected-graph/description/

image.png

这道题就是根据边连起来,看有几个集合。典型的并查集应用。

int[] parent;
    int find(int i){
        if(parent[i] == i) return i;
        return parent[i] = find(parent[i]);
    }
    boolean union(int i,int j){
        int pi = find(i);
        int pj = find(j);
        if(pi == pj) return false;
        parent[pi] = pj;
        return true;
    }
    public int countComponents(int n, int[][] edges) {
        parent = new int[n];
        for(int i=0;i<n;i++)
            parent[i] = i;
        int cnt = n;
        for(int[] edge : edges){
            if(union(edge[0],edge[1])) cnt--;
        }
        return cnt;
        
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容