求解代码
publicstaticHashMap<Integer,Integer>rowFirst=newHashMap<Integer,Integer>();publicstaticHashMap<Integer,Integer>colFirst=newHashMap<Integer,Integer>();publicstaticintMAXN=1001;publicstaticint[]father=newint[MAXN];publicstaticintsets;publicstaticvoidbuild(intn){rowFirst.clear();colFirst.clear();for(inti=0;i<n;i++){father[i]=i;}sets=n;}publicstaticintfind(inti){if(i!=father[i]){father[i]=find(father[i]);}returnfather[i];}publicstaticvoidunion(intx,inty){intfx=find(x);intfy=find(y);if(fx!=fy){father[fx]=fy;sets--;}}publicstaticintremoveStones(int[][]stones){intn=stones.length;build(n);for(inti=0;i<n;i++){introw=stones[i][0];intcol=stones[i][1];if(!rowFirst.containsKey(row)){rowFirst.put(row,i);}else{union(i,rowFirst.get(row));}if(!colFirst.containsKey(col)){colFirst.put(col,i);}else{union(i,colFirst.get(col));}}returnn-sets;}