841.钥匙和房间
841.钥匙和房间
题目链接:841.钥匙和房间
代码如下:
class Solution
{
public:bool canVisitAllRooms(vector<vector<int>>& rooms) {vector<bool> visited(rooms.size(),false);dfs(rooms,visited,0);// bfs(rooms,visited,0);for(int i=0;i<visited.size();i++){if(!visited[i]) return false;}return true;}
private://深度遍历void dfs(vector<vector<int>>& rooms,vector<bool>& visited,int key){if(visited[key]) return;visited[key]=true;vector<int> keys=rooms[key];for(int k:keys){dfs(rooms,visited,k);}}//广度遍历void bfs(vector<vector<int>>& rooms,vector<bool>& visited,int key){queue<int> que;visited[key]=true;que.push(key);while(!que.empty()){int cur=que.front();que.pop();vector<int> keys=rooms[cur];for(int k:keys){if(!visited[k]){visited[k]=true;que.push(k);}}}}
};