个人的并查集模板

public class Main {
    static int n;
    static int[] parent;
    public static void main(String[] args) {

    }

    //初始化
   static void  init (){
       for (int i = 0; i < n; i++) {
           parent[i]=i;
       }
    }

    //查找根
     static int find(int u){
        if (u== parent[u]){
            return u;
        }
        //路径压缩
        parent[u]=find(parent[u]);
        return parent[u];
    }
    //判断是否同集合
     static boolean isSame(int a,int b){
       return find(a)==find(b);
    }
    //添加
    static void join(int  a,int b){
        a=find(a);
        b=find(b);
        if (a==b){
            return;
        }
        parent[a]=b;

    }
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务