网站模板下载百度云链接怎么做的,网络营销推广的心得体会,贵阳网站排名优化,农业大学网站建设特点思路#xff1a;dfs
或者这道题用bfs也是可以的。
这道题有点迷惑性#xff0c;这里的数组给的是无向图的数组#xff0c;而并不是地图#xff0c;这里需要着重注意一下。
而后#xff0c;这里的状态数组st没必要是二维的#xff0c;我们并不会去遍历所给的数组#…思路dfs
或者这道题用bfs也是可以的。
这道题有点迷惑性这里的数组给的是无向图的数组而并不是地图这里需要着重注意一下。
而后这里的状态数组st没必要是二维的我们并不会去遍历所给的数组这是没有意义的我们只需要从这个数组中提取出来哪些城市有连接即可。
剩下的就是连通块的思想了。连通块前面已经写过很多了大家可以去前面的博客看一下。
对于每一个编号的城市在遍历的时候都进行标记然后再去判断和其他城市有没有联系如果有就换到下一个城市里面继续dfs没有的话继续循环这样就遍历完一个“省份”了也就是一个连通块不要忘记计数。
上代码 class Solution {int []stnew int[210];int n;public void dfs(int x,int[][]s){if(xn)return;for(int i0;in;i){if(st[i]0s[x][i]1){st[i]1;dfs(i,s);}}}public int findCircleNum(int[][] isConnected) {nisConnected.length;int counts0;for(int i0;in;i){if(st[i]0){st[i]1;dfs(i,isConnected);counts;}}return counts;}
}