0
点赞
收藏
分享

微信扫一扫

Leetcode-841. 钥匙和房间

进击的包籽 2022-02-16 阅读 53

链接

841. 钥匙和房间

题目

示例

说明

  • n == rooms.length
  • 2 <= n <= 1000
  • 0 <= rooms[i].length <= 1000
  • 1 <= sum(rooms[i].length) <= 3000
  • 0 <= rooms[i][j] < n
  • 所有 rooms[i] 的值 互不相同

思路

设置一个辅助数组flags记录每个房间是否已经访问,然后DFS,访问过的设置成1,最后遍历flags数组,判断是否还存在没访问过的房间。

C++ Code

class Solution {
public:

    void dfs(int i,vector<vector<int>>& rooms,vector<int>& flags){
        vector<int> temp=rooms[i];;
        if(flags[i]==1) return;
        flags[i]=1;
        for(int a=0;a<temp.size();a++)
        {
            dfs(temp[a],rooms,flags);
        }

    }
    bool canVisitAllRooms(vector<vector<int>>& rooms) {
        vector<int> flags(rooms.size(),0);
        dfs(0,rooms,flags);
        for(int i=0;i<flags.size();i++)
        {
            if(flags[i]==0) return false;
        }
        return true;
    }
};
举报

相关推荐

0 条评论