void dfs(int i, bool* visted, vector<vector<int> >& isConnected, int len)
{
visted[i] = true;
int j = 0;
for (j = 0; j<len; j++)
{
if (isConnected[i][j] == 1 && visted[j] == false)//如果有关联并且不属于一个省份。
{
dfs(j, visted, isConnected, len);
}
}
}
class Solution {
public:
int findCircleNum(vector<vector<int> >& isConnected) {
int len = isConnected.size();
int province = 0;
//bool visted[]//知道数组的大小但是不能放进直接创建的数组中时,可用vector,可以动态申请
bool* visted = new bool[len]{0};//动态申请一个bool类型的数组并全部初始化为false
//vector<bool> visted(len);
int i = 0;
for (i = 0; i < len; i++)
{
if (!visted[i])//若没有被归入一个省份。
{
dfs(i, visted, isConnected, len);//通过一遍标记作为一个省份。
province++;
}
}
delete[]visted;
return province;
}
};
547.省份数量
最新推荐文章于 2024-09-11 15:28:58 发布