上代码:
public static void BFS(int[][] G, int edgeNum, int begin, boolean[] visited)
{
Queue<Integer> Q=new LinkedList<Integer>();
Q.add(begin);
visited[begin] = true;
while (!Q.isEmpty())
{
int tmp = Q.peek();
Q.poll();
for (int i = 0; i < edgeNum; i++)
{
if (!visited[i] && G[tmp][i]==1)
{
Q.add(i);
visited[i] = true;
}
}
}
}
public int GetCount(int[][] grid){
int count = 0;
int verNum = grid.length;
boolean[] visited = new boolean[verNum];
for (int i = 0; i < verNum; i++) {
if (!visited[i])
{
BFS(grid,verNum,i,visited);
count++;
}
}
return count;
}