使用深度优先遍历构造的图,只要访问过就标记已访问
int num=0;
vector<bool>vis;
void dfs(vector<vector<int>>& rooms,int x){
vis[x]=true;
num++;
for(auto& v:rooms[x]){
if(!vis[v])dfs(rooms,v);//说明这个房间没有进去过,所以可以访问
}
}
int main(){
vis.resize(rooms.size(),false);//初始化vis
dfs(rooms,0);//0节点开始遍历
if(num==rooms.size())return true;
return false;
}
标签:false,int,房间,dfs,vis,num,钥匙,rooms,leetcode841 From: https://www.cnblogs.com/wangkaixin-yy/p/17695988.html