程式語言 - LeetCode - C++ - 841. Keys and Rooms



參考資訊:
https://algo.monster/liteproblems/841
https://www.cnblogs.com/grandyang/p/10415773.html

題目:


解答:

class Solution {
public:
    bool canVisitAllRooms(vector<vector<int>>& rooms) {
        vector<int> visited(rooms.size(), 0);

        dfs(rooms, 0, visited);

        int cnt = 0;
        for (int i : visited) {
            cnt += i;
        }
        return cnt == rooms.size();        
    }

    void dfs(vector<vector<int>>& rooms, int idx, vector<int>& visited) {
        visited[idx] = 1;

        for (int key : rooms[idx]) {
            if (visited[key] == 0) {
                dfs(rooms, key, visited);
            }
        }
    }
};