Keys and Rooms LeetCode solution in C++

1
class Solution {
2
void dfs(vector<vector<int>> &rooms, unordered_set<int> &keys, unordered_set<int> &visited,
3
int curr) {
4
visited.insert(curr);
5
for (int k : rooms[curr]) keys.insert(k);
6
for (int k : keys)
7
if (visited.find(k) == visited.end()) dfs(rooms, keys, visited, k);
8
}
9

10
public:
11
bool canVisitAllRooms(vector<vector<int>> &rooms) {
12
unordered_set<int> keys;
13
unordered_set<int> visited;
14
dfs(rooms, keys, visited, 0);
15
return visited.size() == rooms.size();
16
}
17
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0