セットの実装クエリーマップに接続ブランチがいくつあるかを調べます
877 ワード
パラレルセットアルゴリズムとは,2つの動作に関し,1つは祖先ノード(配列parent[i]=iが満たされる場合,iが祖先ノードであると定義できる)を探すことであり,連通分岐をマージすることである.
import java.util.HashMap;
import java.util.HashSet;
public class UnionSet {
public static void main(String[] args) {
}
int []parent;
int r=0;
//
public int find(int n){
while(n!=parent[n]){
parent[n]=parent[parent[n]];
n=parent[n];
}
return n;
}
//
public void union(int u,int v){
int pu=find(u);
int pv=find(v);
if(pu==pv){
return;
}
r++;
parent[pu]=pv;
}
public int findCircleNum(int[][] M){
int n=M.length;
parent=new int [n];
//
for(int i=0;i